Действительно возникают проблемы, пытаясь нарисовать четыре розы лист: Это упражнение:Drawing Four Leaf Rose в Java
Нарисуйте картину «fourleaved розы», уравнение которой в полярных координатах г = соз (2θ). Пусть θ переходит от 0 до 2 * pi за 100 шагов. Каждый раз, вычислить г, а затем вычислить (х, у) координаты от полярных координатах, используя формулу х = г ⋅ Cos (q), Y = г ⋅ sin (q)
Мой код:
public Rose(double awidth, double aheight)
{
width = awidth;
height = aheight;
theta = 0;
}
public void drawRose(Graphics2D g2)
{
Ellipse2D.Double test ;
double r = 0;
for(int i = 0; i <= 100; i++)
{
r = Math.cos(Math.toRadians(2*theta) );
x = r *( Math.cos( Math.toRadians(theta)) * width) + 300;
y = r * ( Math.sin( Math.toRadians(theta)) * height) + 300 ;
test = new Ellipse2D.Double(x, y, width, height);
theta += 3.6;
g2.draw(test);
}
}
}
Любая помощь будет значительно appreciately.
А что, собственно, не так с вашей реализацией? – MarsAtomic
Я сам не создавал объекты Ellipse2D, а создавал 'List', используя формулы, а затем рисовал линии между точками в списке. –
Я еще не узнал о Списке. –