C+中的海龟形徽标+;,绘制曲线 我用CIMG库在C++中创建了一个标志龟类的对象。尝试绘制圆时,定义为命令repeat 360[fd 1 rt1],循环360次,向前移动1个像素,每次迭代向右旋转1度。但是,通过我的代码,我得到了一个更为八角形的形状,而不是一个实际的圆

C+中的海龟形徽标+;,绘制曲线 我用CIMG库在C++中创建了一个标志龟类的对象。尝试绘制圆时,定义为命令repeat 360[fd 1 rt1],循环360次,向前移动1个像素,每次迭代向右旋转1度。但是,通过我的代码,我得到了一个更为八角形的形状,而不是一个实际的圆,c++,geometry,turtle-graphics,cimg,C++,Geometry,Turtle Graphics,Cimg,前进的代码: void turtle::fd(int distance) { int endx, endy; endx = posx-(int)round((distance*sin(heading * PI / 180))); endy = posy-(int)round((distance*cos(heading * PI / 180))); if(pen) window->draw_line(posx, posy, endx, endy, color1, 1); posx

前进的代码:

void turtle::fd(int distance)
{
int endx, endy;

endx = posx-(int)round((distance*sin(heading * PI / 180)));
endy = posy-(int)round((distance*cos(heading * PI / 180)));

if(pen)
   window->draw_line(posx, posy, endx, endy, color1, 1);

posx=endx;
posy=endy;
}
在CImg中,
draw_line()
将从位置
posx
posy
endx
endy
绘制一条线,其余为颜色和不透明度

右转:

void turtle::rt(int degree)
{
   heading -= degree;
   if(heading < 0)
      heading = (360-abs(heading));
}
void-turtle::rt(整数度)
{
航向-=度;
如果(标题<0)
航向=(360 abs(航向));
}

难道.x值不应该使用cos,y值不应该使用sin吗?哈,是的,很好的调用,不会解决问题,但这是坐标旋转的正确方式。谢谢