Anzeige:
Ergebnis 1 bis 9 von 9

Thema: Verständnissfrage QWMatrix

  1. #1
    Registrierter Benutzer
    Registriert seit
    15.10.2003
    Beiträge
    15

    Verständnissfrage QWMatrix

    Hallo,

    ich habe ein Problem mit QWMatrix. Ich versteh die Klasse nicht.
    Ich habe einen CanvasView, denn ich mit:
    Code:
        QWMatrix m = m_view->worldMatrix();
        m.scale( 2.0, 2.0 );
        m_view->setWorldMatrix( m );
    zoomen, bzw mit :
    Code:
        QWMatrix m = m_view->worldMatrix();
        m.scale( 0.5, 0.5 );
        m_view->setWorldMatrix( m );
    unzoomen kann.
    Der Zoom bezieht sich aber immer wieder auf die linke obere Ecke des Views. Ich möchte aber einen bestimmten Bildbereich zoomen. Nun dachte ich, das ich mit QWMatrix translate da was machen kann, aber ich glaube das mittlerweile nicht mehr, da ich einfach nicht richtig verstehe was QWMatrix macht.

    (Ich hoffe nicht zu verwustelt beschreiben)

  2. #2
    Registrierter Benutzer
    Registriert seit
    15.10.2003
    Beiträge
    15
    ich habe noch das hier gefunden:

    void QScrollView::setContentsPos ( int_x, int_y ) [virtual slot]
    Scrolls the content so that the point (x, y) is in the top-left corner.
    ist das richtiger?

  3. #3
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    719
    ich würd mal erst in die Mitte translaten, dann skalieren und dann wieder zurücktranslaten ausprobieren. So mache ich das in OpenGL immer.

  4. #4
    Registrierter Benutzer
    Registriert seit
    15.10.2003
    Beiträge
    15
    ja, aber was versteh ich denn unter translaten?
    was passiert dabei?

  5. #5
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    719
    Translate = Verschiebung
    Rotate = Drehung
    Scale = Skalieren/Zoomen/Strecken/Stauchen

  6. #6
    Registrierter Benutzer
    Registriert seit
    15.10.2003
    Beiträge
    15
    ah, ok.

    translate(100,200) heist dann, das er x=100 und y=200 zur linken oberen ecke macht?

  7. #7
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    719
    ja genau

  8. #8
    Registrierter Benutzer
    Registriert seit
    15.10.2003
    Beiträge
    15
    mit translate klappt das so nicht. erstmal muss man die koordinaten negativ angeben, das sie auf den Null Punkt (links oben) draufaddiert werden und zweitens fehlen dann bildinformationen, die durch translate abgeschnitten wurden.

    ich denke (zumindest im moment ) das setContentsPos ist für meinen zweck besser geeignet ist.

  9. #9
    Registrierter Benutzer
    Registriert seit
    15.10.2003
    Beiträge
    15
    Noch mal kurz etwas dazu.

    Mit:
    Code:
      QWMatrix m
      m.scale( 2, 2 );
    vergrößert man den CanvasView um das zweifache.

    Nun möchte ich abfragen um wie viel er vergrößert wurde.
    Ich dachte da an :
    Code:
      m.m_11();
    
      qDebug("m.m_11(): %d",m.m_11())
    gibt aber immer null zurück.
    Geändert von kext (29-10-2003 um 08:25 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •