Hallo, ich muss eine Kugel mittel Rekursion zeichnen. Und zwar soll ich die Kugel "zeilenweise" mit n Zeilen von oben nach unten (n ist dabei die Rekursionstiefe). In jeder Zeile soll ich rekursiv n Dreiecke rund um die Kugel zeichnen, und dann die nächste Zeile beginnen usw. In jeder Zeile sind gleich viele Dreiecke. Der rekursive Algorithmus soll 3 Parameter haben (Zeile, Spalte auf der Kugel und n). n ändert sich nicht, nur Zeile und Spalte. Um einen Punkt zu berechnen habe ich diese Formeln:
𝑃.𝑥=𝑟∙cos𝛼∙cos𝛽
𝑃.𝑦=𝑟∙sin𝛼∙cos𝛽
𝑃.𝑧=𝑟∙sin𝛽
Hat irgendjemand eine Idee wie ich so etwas machen soll, ich komm einfach nicht drauf. Vielen Dank schon mal für die Hilfe
[CODE lang="java" title="Das ist der Code aktuell, ist nicht der gesamte, aber die wichtigen Methoden"]Point(double radius, double alpha, double beta){
x=radius* Math.cos(alpha)*Math.cos(beta);
y=radius* Math.sin(alpha)*Math.cos(beta);
z=radius* Math.sin(beta);
}
void rekursiv(int n, Point p1, Point p2, Point p3){
if(n==0)return;
printTriangle(p1,p2,p3);
}
void print(int n) {
Point p1= new Point(getRadius(),0,90); //random Zahlen, weiß nicht genau was hingehört
Point p2= new Point(getRadius(),0,16);
Point p3= new Point(getRadius(),15,85);
System.out.println("solid Aufgabe3");
rekursiv(n,p1,p2,p3);
System.out.println("endsolid");
}[/CODE]
𝑃.𝑥=𝑟∙cos𝛼∙cos𝛽
𝑃.𝑦=𝑟∙sin𝛼∙cos𝛽
𝑃.𝑧=𝑟∙sin𝛽
Hat irgendjemand eine Idee wie ich so etwas machen soll, ich komm einfach nicht drauf. Vielen Dank schon mal für die Hilfe
[CODE lang="java" title="Das ist der Code aktuell, ist nicht der gesamte, aber die wichtigen Methoden"]Point(double radius, double alpha, double beta){
x=radius* Math.cos(alpha)*Math.cos(beta);
y=radius* Math.sin(alpha)*Math.cos(beta);
z=radius* Math.sin(beta);
}
void rekursiv(int n, Point p1, Point p2, Point p3){
if(n==0)return;
printTriangle(p1,p2,p3);
}
void print(int n) {
Point p1= new Point(getRadius(),0,90); //random Zahlen, weiß nicht genau was hingehört
Point p2= new Point(getRadius(),0,16);
Point p3= new Point(getRadius(),15,85);
System.out.println("solid Aufgabe3");
rekursiv(n,p1,p2,p3);
System.out.println("endsolid");
}[/CODE]