在给定角度的情况下获取圆圆周上点的位置?


Answers:


23

您可以使用基本三角函数来解决。 http://www.freehomeworkmathhelp.com/Trigonometry/Trigonometry_Introduction/trigonometry.html

Tan(angle) = Opposite / Adjacent
Sin(angle) = Opposite / Hypotenuse
Cos(angle) = Adjacent / Hypotenuse

我总是记得上面的

The Old Arab
Sat On His
Camel And Howled

上面的意思是,如果我们有一个直角三角形的角度和一个长度,我们可以算出另一边的长度。幸运的是,您的问题可以认为是计算三角形边的长度:

圆三角形图像

在上面,r是斜边,x是相邻的,y是相反的。

所以对于x:

Cos(a) = x / r
Cos(a) * r = x
x = Cos(a) * r

对于y:

Sin(a) = y / r
Sin(a) * r = y
y = Sin(a) * r

这是假设一个圆位于(0,0),因此我们只需添加圆的中心即可。

radius = 1;
CenterX = 0.5;
CenterY = 0.5;

x = Cos(angle) * radius + CenterX;
Y = Sin(angle) * radius + CenterY;

注意: C#Math函数使用以弧度表示的角度,因此,如果有度,请先将其转换:

radians = degrees * Math.PI / 180

1
请记住,角度应为弧度。
bummzack,2011年

取决于数学库,但要注意的是,XNA / .Net使用弧度。
乔治·达基特

为什么老阿拉伯人要哭呢?在这里,我们并不是所有人都讲英语,因此概念性的记忆规则远比助记符更好
FxIII 2011年

1
@FxIII:是的,这不是最受欢迎的备忘录,但是我总是发现它比SOHCAHTOA更容易​​记住,因为这很不寻常。
乔治·达基特

或者,一旦熟悉了该概念,便可以每年查找一次或两次。
Tetrad
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.