Mit dieser Funktion möchte ich einen rekursiven Baum zeichnen, aber beim Aufruf dieser Funktion ändert sich die Richtung der zweiten Zeile (die ich rekursiv zeichnen möchte).Wie behält man die Richtung der Linie in der Rekursion unverändert?
a
ist der Winkel zwischen x
und der ersten Zeile,
b
Ist der Winkel zwischen der ersten Linie und der zweiten Linie.
Fotos: This is the First level recursion This is the second level of recursion the problem is at highlighted line Wie kann ich dieses Problem beheben?
public void drawTree(int n, float l, float x, float y, float a, float b, float c,
float k1, float k2, float k3, float m2, float m3)
{
//float k = (float)Math.Pow(-1, n+1);
Pen p = new Pen(Color.Black);
Graphics gr = this.CreateGraphics();
float l1 = k1 * l;
float l2 = k2 * l;
float l3 = k3 * l;
float g = m3 * l;
float f = m2 * l;
gr.DrawLine(p, x, y, x + l * cos(a), y - l * sin(a));
if (n == 1) return;
drawTree(n - 1, l2, x + f * cos(a), y - f * sin(a), (a - b), b, c, k1, k2, k3, m2, m3);
}
Was ist der Zweck von 'l1',' l2', 'l3' und' g'? Können Sie alle verwendeten Parameter erklären? – Enfyve
l1, l2 und l3 sind die Kinder, wie der Zweig der Bäume, aber ich habe nur l2, g und f ist die Punkte auf "l", wo die l2 und l3 whill starten –
Korrigieren Sie mich, wenn ich falsch liege, aber Ich sehe nicht, dass "g" irgendwo benutzt wird. – Enfyve