Linie Punkt zu Punkt zeichnen c#

snogi

Neuling
Thread Starter
Mitglied seit
07.09.2009
Beiträge
10
Guten Tag Liebe Deluxx Gemeinde,

ich habe mit meinem Projektteam folgendes Problem.
Wir haben eine Strich Methode zum zeichnen einer Linie, welche auch in c# ohne Probleme funktioniert.
Jetzt haben wir uns mit unserem Vorgesetzten zusammen gesetzt gehabt und dieser sagte das unser Scanner diese Linie nicht verarbeiten wird, sondern nur die Punkte die wir ihm geben. ( Sprich Anfangspunkt und Endpunkt via Distanz )

Dies ist der zugehörige Code von unserer Strichmethode:
Code:
        public void Strich(ref float startx, ref float starty, double distanz, double winkel, ref Graphics g)
        {
            winkel = winkel * 2 * Math.PI / 360;
            hoehe = distanz * Math.Sin(winkel);
            lange = distanz * Math.Cos(winkel);

            distanz = lange + startx;
            ypunkt = hoehe + starty;

            string Shoehe = Convert.ToString(hoehe);
            float Zhoehe = float.Parse(Shoehe);
            string Sdistanz = Convert.ToString(distanz);
            float Zdistanz = float.Parse(Sdistanz);
            string Sypunkt = Convert.ToString(ypunkt);
            float Zypunkt = float.Parse(Sypunkt);

            //g.ScaleTransform(umrechnung, umrechnung);
            //g.TranslateTransform(xWert, xWert);
            g.DrawLine(stift, startx, starty * x, Zdistanz, Zypunkt * x);

            startx = Zdistanz;
            starty = Zypunkt;
         
        }

Eine Ausgabe erfolgt über eine weitere Methode
Code:
       public void aZeichnen(ref Punkt start,ref Graphics g)                              
       {
           Strich(ref start.x, ref start.y, 2.1, 70, ref g);
           Strich(ref start.x, ref start.y, 1.1, 290, ref g);
           Strich(ref start.x, ref start.y, 0.75, 180, ref g);
           Strich(ref start.x, ref start.y, 0.75, 0, ref g);
           Strich(ref start.x, ref start.y, 1, 290, ref g);
           start.x += 0.3f;         
       }
Nun müssen wir jeden einzelden Punkt der Linie berechen um eine komplette Linie über den Scanner anzeigen lassen zu können.

Über eine schnelle Hilfe würden wir uns sehr freuen.

mfg
snogi
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Jetzt haben wir uns mit unserem Vorgesetzten zusammen gesetzt gehabt und dieser sagte das unser Scanner diese Linie nicht verarbeiten wird, sondern nur die Punkte die wir ihm geben. ( Sprich Anfangspunkt und Endpunkt via Distanz )

http://msdn.microsoft.com/en-us/library/f956fzw1.aspx

Nun müssen wir jeden einzelden Punkt der Linie berechen um eine komplette Linie über den Scanner anzeigen lassen zu können.

Bahnhof? Diese Aussage wiederspricht dem oben geschriebenen. Musst du jetzt jeden Punkt berechnen oder doch nur eine Linie zwischen einem Start und einem Endpunkt berechnen?
 
Wir müssen vom Anfangs und Endpunkt der Linie jeden einzelden Punkt dazwischen berechnen um damit eine Linie auf dem Scanner zu bekommen, weil dieser Sonst nur den Anfangs- Endpunkt anzeigen würden.
 
Da bleibt nur selber Rechnen. Der Rechenweg ist einfach. Du musst die Strecke zwischen den beiden Punkten ausrechnen. Genauergesagt brauchst du den Anstieg der Geraden.

http://de.wikipedia.org/wiki/Steigung

Damit kannst du dann zu jedem X Wert den Y Wert berechnen. Viel Spaß damit :)
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh