中易网

如何得到炮口的坐标?

答案:2  悬赏:0  
解决时间 2021-11-13 06:00
一台固定位置 可180度左右旋转的炮
要怎么去计算炮口的位置?
假如炮口离旋转的中心点100个像素.
x坐标为500,y坐标为300

int degrees = 270;
int centerX = 500;
int centerY = 300;
double angle = Math.PI * degrees / 180.0;
double x = Math.Cos(angle) * 100 + centerX;
double y = Math.Sin(angle) * 100 + centerY;
MessageBox.Show(degrees + "度\n炮口X坐标" + x + "\n炮口Y坐标" + y);
按着这个算法
做起来不知道为什么好像有少许偏差
http://user.qzone.qq.com/2993354/infocenter?ptlang=2052&ADUIN=2993354&ADSESSION=1264887761&ADTAG=CLIENT.QQ.2653_Mysrv.0
偏差就如上面日志里的3张图
貌似是因为我大炮图片原来就是横向右边的缘故?
导致中心点错了?
最佳答案
我看不了你的图片你发到百度上吧,无论炮口朝向哪个方向中心点(x坐标为500,y坐标为300)肯定是不会变得,因为这个算法算出来都是double类型,而你要绘制在窗体上的坐标必须是int类型,所以误差是在所难免的,.NET DrawEllipse方法画出圆也有一定的偏差,这个没有办法

有偏差吗?具体在哪有问题?

你可以按照炮旋转的角度计算(我指的是0-360之间的旋转),如下

private void button1_Click(object sender, EventArgs e)
{
int degrees = 270;
int centerX = 500;
int centerY = 300;
double angle = Math.PI * degrees / 180.0;
double x = Math.Cos(angle) * 100 + centerX;
double y = Math.Sin(angle) * 100 + centerY;
MessageBox.Show(degrees + "度\n炮口X坐标" + x + "\n炮口Y坐标" + y);
}
全部回答
没有那么简单的事!!!! 自己从(0,0,0)-(1,2,3)一个一个试吧!! 要做一个mod是很难的
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求好看的古风耽美文
睡哈哈布艺床好吗?
左面部肌肉跳动 频率很高 这是怎么回事
牦牛骨髓粉的作用是什么??
北京798在哪 周围还有什么地方好玩?
脱氢异雄酮脱发
梦见抓兔子什么意思是什么意思?好不好呢?
抹生姜对头发生长有帮助吗
凡高少儿美术馆地址在什么地方,我要处理点事
高考可以使用可擦笔吗
刀割伤以后伤口痒怎么办
关于无锡到宜兴善卷洞怎么去?请教从无锡火车
斗斛之禄的意思?成语怎么解释?
谁知道和田市昆仑房地产开发有限责任公司联系
1979年农历11月初7是什么星座阳历是多少
推荐资讯
请问华帝燃气灶郑州售后服务点在哪?
有什么办法把粘在墙上的双面胶给弄下来
高端背景墙材料用什么好?
低容的意思是什么?低容的释义是什么啊?
100元游戏耳机推荐哪种好
电脑屏雪花点的解决方法谁清楚?
产妇是否能喝牛奶,及枣子糕
全国驾照最难考的城市上海
关于每天都掉很多头发,而且隔两天不洗头,就
poss机是什么东东
空调突然不能调温度是怎么回事啊?开始调到25
中大在职MBA学费是多少啊?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?