OpenGL Linienbreite

8

In meiner OpenGL-App wird es nicht möglich sein, eine Linie zu zeichnen, die größer als zehn Pixel ist. Gibt es eine Möglichkeit, mehr als zehn Pixel zu zeichnen?

%Vor%     
Matt 14.08.2010, 16:54
quelle

3 Antworten

7

Sie könnten versuchen, ein Quad zu zeichnen. Machen Sie es so breit, wie Sie möchten, dass Ihre Linie lang und hoch wie die Linienbreite ist, die Sie brauchen, dann drehen Sie und positionieren Sie sie, wo die Linie gehen würde.

    
AshleysBrain 14.08.2010, 16:57
quelle
3

Ah, jetzt, wo ich verstanden habe, was du meintest:

  1. zeichne ein Quadrat nach dem anderen.
  2. berechnet die Länge und Ausrichtung der Linie
  3. strecke es auf die Länge in x
  4. übersetze zu startpos und rotiere nach line_orientation

oder:

  1. bekomme den Vektor der Zeile: v: (x2 - x1, y2 - y1)
  2. normalisieren v: n 3- Erhalten Sie orthogonal (normal) des Vektors: o (leicht in 2d)
  3. addiere und subtrahiere o vom Ende der Linie und Startpunkt, um 4 Eckpunkte zu erhalten
  4. zeichne ein Quad mit diesen Punkten.
AndreasT 14.08.2010 18:53
quelle
3

Es macht Sinn, dass Sie nicht können. Aus der glLineWidth-Referenz:

Der Bereich der unterstützten Breiten und der Größenunterschied zwischen den unterstützten Breiten innerhalb des Bereichs können abgefragt werden, indem glGet mit den Argumenten GL_LINE_WIDTH_RANGE und GL_LINE_WIDTH_GRANULARITY aufgerufen wird.

    
jcage 14.08.2010 21:42
quelle

Tags und Links