我有一个名为Circle的类,它从一个名为Shape的类扩展而来。我试图找出如何使用draw()
方法的给定描述在绘图仪上绘制圆圈。
这是我到目前为止的课程:
public class Circle extends Shape{
private double radius;
public Circle(double x_origin, double y_origin, double r, Color c){
super(x_origin, y_origin, c);
this.radius = r;
}
public void draw(WinPlotter plotter){
setPenColor(plotter);
}
}
setPenColor只为要绘制的圆提供颜色,随意忽略它。
圆圈绘制方法的javadoc描述如下:
绘制圆圈。使用来自的正弦和余弦函数 java.lang.Math类,用于计算位于其上的有限点集 圆周,然后使用drawTo方法 WinPlotter绘制一系列小型连接直线 段。绘制足够的段时(大约25个段) 足够的),近似平滑的圆圈。
如果您需要查看整个Circle javadoc,here it is
以下是WinPlotter javadoc用作参考。我只使用moveTo()
和drawTo()
方法来绘制我必须绘制的其他形状。
我只是想知道在绘图仪上绘制圆圈的最佳方法。
答案 0 :(得分:0)
我能想到的简单方法是使用Math.sin
和Math.cos
在设定的时间间隔内循环到360度(2 * PI),在当前值和前一个值之间画线。 / p>
查看http://en.wikipedia.org/wiki/Trigonometric_functions并查看右侧的图片。然后将其视为循环变量为thea
GL做你的作业。
编辑:以下是您应该真正关注的链接http://iopixels.com/cos-sin-explain