绘制具有特定起点的圆圈(从度数视图)

时间:2017-07-10 17:31:41

标签: geometry drawing

我目前使用的绘图算法:

a_max =  Pi*2 (float)(num_segments - 1.0f)/(float)num_segments; 
for (unsigned int i = 0; i<=num_segments;i++)
{
const float a = (float)i / (float)num_segments * a_max;
SetPixel(centre.x + cos(a) *radius, centre.y +sin(a) *radius); 
}

工作正常,但它开始绘制(centre.x + radius,centre.y)。我想让它从顶部开始,因为我想绘制一个指南针,零度位于顶部,而不是在右边,这样我就不必做出一个hacky解决方案。

2 个答案:

答案 0 :(得分:0)

在开始绘图之前尝试向左旋转90度,这应该为你解决。

答案 1 :(得分:0)

指南针不仅从&#34; north&#34;开始。而不是&#34; east&#34;但也顺时针而不是逆时针。

对于这种情况,只需交换sin(a)cos(a)

x = centre.x + sin(a) * radius
y = centre.y + cos(a) * radius