Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » midpoint fuer linie

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.11.2006, 16:28 Uhr
~sara_20
Gast


Also Leute, ich versteh ueberhaupt nichts mehr.
Ich muss den midpoint algorithmus ausprogrammieren und habe es einigermasen geschafft. Aber es sturzte in manchen faellen ab.
Jetzt geht es zwar, aber die Linien die er mir auszeichnet sind irgendwie zu vile getrennt.
Hier das Programm


C++:
void MidpointLine (int xp,int yp,int xq,int yq)
  {
  int  x=xp, y=yp;
  int dx=xq-xp, dy=yq-yp;
  int d=0, m=0, xInc=1, yInc=1;
  if(dx<0) {xInc=-1;dx=-dx;}
  if (dy<0) {yInc=-1;dy=-dy;}
  if(dy <= dx) {
                d=2*dy-dx;
                m=2*(dy-dx);
                for(;;)
                       {
                        if(y == yq) break; //am Anfang: if (x==xq)
                        pc->Pixels[x][y]=clRed;
                        if(d>0) {
                                 x+=xInc;
                                 y+=yInc;
                                 d+=m;
                                 }


                        if(d<=0)  {
                                   x+=xInc;
                                  d+=2*dy;
                                  }
                       }
                }
    else {
          d=2*dx-dy;m=2*(dx-dy);
          for(;;) {
                   if(x == xq) break; //am Anfang hatte ich hier if(y==yq), aber so stuertze er mir staendig ab!
                   pc->Pixels[x][y]=clRed;
                   if(d>0) {
                            x+=xInc;
                            y+=yInc;
                            d+=m ;
                            }
                   if(d<=0) {
                             y+=yInc;
                             d+=2*dx;
                             }
                   }
          }
    }



Kann mir jemand hierbei helfen???

Ich waere sehr dankbar!

Dieser Post wurde am 23.11.2006 um 12:10 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.11.2006, 10:31 Uhr
Th



Benutz bitte die Codetags und stell die Smilies aus...
Und was soll der midpoint-Algorithmus bei dir genau machen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.11.2006, 22:00 Uhr
~sara_20
Gast


Er soll eine Linie zeichnen. Das ist die modifizierte Variante des Bresenhams algorithmus.
Es funktioniert bei mir alles, ausser dass die Linien wenn sie in der nahe von 45Grad sind, sehr duenn werden.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.11.2006, 19:56 Uhr
~sara_20
Gast


Also,
habe es doch irgendwie hinbekommen.
Nun, eine weitere Frage
Da ich ziemlich neu in diesem Bereich bin, habe ich auch eine ziemlich elementare Frage. Meine Aufgabe ist es einen Programm zu machen wo man Linien, Dreiecke und Kreise zeichnen kann und mit ihnen manipulieren kann. Nun, die Frage. In was fuer einer Struktur( Liste oder Vektor oder...) speicher man die jewalogen Punkte.
Ich hatte so eine Idee erstens die Informatien zu speichern die sagt von welchem Objekt es handelt und dann die Punkte des Objektes. Aber in was? In einem Vektor der Pointer auf die jewaligen Punkten?

Ich wuerde mich sehr ueber eine Antwort freuen oder uber einen Link wo ich solche Elementaren Sachen der Computergeometrie finden kann.

Danke im Vorraus!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: