在一个winform应用程序中,我必须根据配置绘制一些图形。基于方形中心+角度获取正方形上的X,Y坐标
我正在寻找最干净的方法来获取X; Y坐标位于一个正方形,基于角度。这个角度(度)由数学惯例给出(右边0°,顶部90°...)并表示我们搜索这些坐标的方向。
我知道这是不是很清楚,所以我创造了一些原理,这将是更清洁:
我知道什么:广场的一面是:2*R
,R则代表的半径内圈。
我正在寻找红色圆圈中的X; Y坐标。
现在我已经即解决这个问题取决于角度的算法:
A) 如果我们有305°和45°之间的角度,我们知道X值(= R) ,并计算Y:
Y = R/cos(α) * sin(α)
B) 如果我们有45°和135°之间的角度,我们知道的Y值(= R),并计算X:
...
首先,我不确定它会在所有情况下都能正常工作,并且它使4次几乎相同的代码。
你有关于如何使这个更清洁的想法?
(我developp在C#.NET,所以如果你知道的东西,可以帮助我在库,可能是好的)
编辑 也许我找到了一个简洁的方式,你认为它会工作或有简单吗? 这个想法是转换笛卡儿的极坐标值。为了做到这一点,我们必须计算幅度。
αTemp = α % Math.PI /2; //We put it in the first quarter, it will not change the amplitude.
amplitude = R /cos(αTemp);
的,我们只需要转换polar into cartesian:
X = cos(α) * amplitude;
Y = sin(α) * amplitude;
是的,但这会带来4次相同类型的代码。我已经有了一个有效的例子,这不是很好 – J4N