LOGO Turtle in C ++,绘制曲线

时间:2015-01-31 12:25:34

标签: c++ geometry turtle-graphics cimg

我正在使用CImg库在C ++中创建一个类似LOGO Turtle的对象。当试图绘制一个圆圈时,定义为循环360次的命令repeat 360[fd 1 rt1],向前移动1个像素并在每次迭代时向右转1度。使用我的代码虽然我得到的是更加八角形的形状,而不是实际的圆形

前进代码:

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 posyendx endy画一条线,其余的是颜色和不透明度。

为了向右转:

void turtle::rt(int degree)
{
   heading -= degree;
   if(heading < 0)
      heading = (360-abs(heading));
}

0 个答案:

没有答案