Laden...

n-eck zeichnen (schleifen formel)

Erstellt von Animal21 vor 13 Jahren Letzter Beitrag vor 13 Jahren 3.437 Views
A
Animal21 Themenstarter:in
144 Beiträge seit 2008
vor 13 Jahren
n-eck zeichnen (schleifen formel)

hallo leute,
ich wollte, dass unter angabe von radius und anzahl der ecken, meine funktion ein n-eck zecihnet.
hab dann erstmal wieder mein TW rausgesucht und für die berechnung der x und y werte der spitzen folgende formel aufgestellt:


phi = 360/anzEcken;
x = cos(45 - phi) * radius
y = sin(45 - phi) * radius

bei der formel bin ich mir eigentlich auch ziemlich sicher, nur hab ich ein problem damit, eine for-schleife zu erstellen, die nun das n-eck zeichnet.
also wo in der formel, muss die zählvarialbe rein?

mfg
ani

2.891 Beiträge seit 2004
vor 13 Jahren

In den Winkel.

A
Animal21 Themenstarter:in
144 Beiträge seit 2008
vor 13 Jahren

also:


        float fX, fY;

        PointF pXY;

        float phi = 360.0f / anzEcken;
        for(int i = 1; i <= anzEcken; i++) {
            float alpha = 45 - phi * i;
            fX = (float)(Math.Cos(alpha) * fRadius3);
            fY = (float)(Math.Sin(alpha) * fRadius3);

            pXY = new PointF(pMitte2.X + fX, pMitte2.Y + fY);
            g.DrawLine(new Pen(Color.Black, 1.0f), pMitte2, pXY);
        }

so siehts jetzt aus, aber dabei komm angehängtes ergebnis bei raus...

die zahlen in den roten kreisen zeigen den reihenfolge, wie sie gezeichnet wurden (sicher ersichtlich ^^)

mfg
ani

2.891 Beiträge seit 2004
vor 13 Jahren

Das du nicht mit Grad, sondern im Bogenmaß rechnen muss, weißt du?

A
Animal21 Themenstarter:in
144 Beiträge seit 2008
vor 13 Jahren

öhm schon klar, wie kann man das beeinflussen? gibt da ja keine parameter oder so... (also bei der cos/sin-fkt)

sorry vll steh ich auch aufm schlauch

edit:
hab das bein vom schlauch genommen:
Bogenmaß = Winkel * PI/180

funktioniert jetzt super

danke nochma