Posts by Wilfried

    Ich habe mir 2 identische Rechtecke erzeugt. Und dann die Fenster für manuelles Einstellen von Skalierung, Rotation und Verzerrung geöffnet. Zunächst das eine Rechteck skaliert, rotiert und verzerrt und dann mit denselben Vorgaben mit anderer (!) Reihenfolge das andere. Das Ergebnis war überraschend, aber seht selbst...

    Gruß

    Wilfried

    Ich muss zugeben, dass ich von MarkDown noch nichts gehört habe. Wie und wo kann ich darauf zugreifen?

    Bisher benutze ich die pdf- und die html-Versionen der Dokumentation. Die html-Version ist schnell im Zugriff, enthält aber die MSG_GO_...-Messages nicht. Die pdf-Version ist ergiebig in den Inhalten, im suchenden Zugriff aber umständlich.

    Wilfried

    In der HTML-Doku wird die Struktur von DWFixed so angegeben:

    Code
    typedef struct {
      word WWF_frac;
      dword WWF_int;
    } DWFixed;

    In der CInclude-Datei geos.h heißt es so:

    typedef struct {
    word DWF_frac;
    sdword DWF_int;
    } DWFixed;

    Vom Compiler wird die geos.h - Version akzeptiert, die andere nicht.


    Wilfried

    Vielleicht hast du recht und man kann da etwas machen. Zunächst wollte ich nur darauf hinweisen, dass ein entsprechender Mechanismus noch nicht existiert. Wenn man z.B. in GeoWrite 2 Value-Objekte nimmt (z.B. Zeichengröße und Zeilenabstand), dann wird klar das,s ein Kopieren (prinzipell) nicht möglich ist. In meinem Projekt wäre ein "Copy and Paste" aber nützlich.

    Hallo Falk,

    wo hast du geguckt? Du hast die Quelle nicht genannt.

    Ich habe in grobjTransformUtils.asm dies gefunden:

    GOI_normalTransform.OT_degrees - may have changed

    und

    mov si,ds:[si].GOI_normalTransform

    ds:[si] zeigt wohl zum Objekt. Aber wie mach ich das in GOC? Den Optr des Objekts habe ich. Und mit ObjDerefVis(objekt) bekomme ich den Zeiger auf die Daten. Also müsste ich doch mit

    GrObjTransMatrix tm;

    pself= ObjDerefVis(objekt);

    tm = pself->GOI_normalTransform.OT_transform;

    ans Ziel gelangen, oder was sagst du dazu?

    Zurück zum Thema:)

    Bisher ist es mir nicht gelungen, die Transformationsmatrix eines transformierten Grafikobjekts auszulesen.

    Die GrObjClass Instance Data enthalten:

    @instance ChunkHandle GOI_normalTransform = NullChunk;

    Wie kann ich darauf zugreifen, wenn ich den Optr des Objekts habe?

    Eine erzwungene Eindeutschung halte ich auch für nicht angebracht.

    Nun sieht das Symbol dieses Grafikwerkzeugs ja tatsächlich wie eine Lupe aus und ist von den Erzeugern ungeschickt gewählt, weil die scheinbare Bedeutung dieses Werkzeugs eingeschränkt wird. Man kann man damit nicht einzelne Objekte vergrößert betrachten wie bei der Bitmap-Lupe. Deshalb würde ich als Beschreibung, wenn nicht "Zoom", dann "Ansichtsgröße verändern" nehmen. Leider ist dann auch nicht offensichtlich, wie man das Werkzeug zur Verkleinerung benutzt:(.

    Wilfried

    .. sollte "Neu zeichnen" oder "Ansicht (besser Anzeige) aktualisieren" heißen.

    Ich persönlich bin ja dafür, das "scrollen" zu lassen, man könnte aber auch "Seite nach Links schieben" schreiben. Ist m.E. aber nicht "Computer-like".

    "Ansicht aktualisieren" ist gut. "Scrollen" ist auch ok. "Blick nach links", wenn man es unbedingt deutsch haben will.

    <<Rainer:

    Btw. Die Übersetzung der Werkzeuge (Optionen->Werkzeugleisten einrichten -> Werkzeuge zeigen/verbergen) bedarf dringend eine Updates. Die meisten der Zeiger sind keine Zeiger! Die englischen Originale sind in Ordnung.>>

    Ganz deiner Meinung.

    Wie wär's mit:

    Zeiger
    Rotationszeiger
    Lupe
    Textobjekt
    Gerade Linie
    Rechteck
    Eckengerundetes Rechteck
    Ellipse
    Kreisbogen
    Polylinie
    Polykurve
    Spline

    Wenn man in GeoDraw mit den Grafiktools ein Objekt erstellt, dann ist der Kreisbogen das einzige Objekt, das bereits transformiert "auf die Welt kommt". Das ist leicht zu bestätigen, indem man gleich nach der Erzeugung auf "Transformation zurücknehmen" klickt.

    Ich beschäftige mich zur Zeit damit, bestehende Objekte durch Transformationsmatrizen in Größe und Form zu verändern. Mir ist es bisher aber nicht gelungen, nach einer durchgeführten Transformation die zugehörige Matrix wieder auszulesen. Inbesondere beim Kreisbogen wäre eine Möglichkeit zum Auslesen interessant.

    Gibt es jemanden, der sich mit diesem Thema beschäftigt (hat) ?

    Ich muss mich leider korrigieren: Das sind natürlich Ankerpunkte. Kontrollpunkte erhält man, wenn man einen Ankerpunkt als "kurvig" festlegt.

    Die beiden kleinen schwarz ausgefüllten Punkte sind hier die Kontrollpunkte. Wenn sie auf einer Geraden mit dem Endpunkt liegen, dann haben sie die Eigenschaft "kollinear" (also eine Tangente). "Unabhängig" bedeutet, dass die beiden Teilstücke am Ankerpunkt einen Knick bilden können. "Symmetrisch" heißt, dass die Abstände der Konrollpunkte zum Ankerpunkt gleich sind. "Automatisch" beinhaltet wohl "Kollinear" und "Symmetrisch".

    Cool. Gruppieren unter "Ausrichten" ist funktionell das selbe, wie "in Grafik konvertieren". Nur dass es nicht aktiv ist, wenn nur ein Objekt ausgewählt ist. Danach hätte ich aber auch niemals unter "Ausrichten" gesucht. :)

    Rainer

    Funktionell hast du recht, tatsächlich stecken zwei verschieden Klassen dahinter: GenToolGroupClass und GrObjConvertControlClass

    Wie ich gerade sehe, benutzt die Assembler-Routine zum Konvertieren in eine Grafik: MSG_GB_GROUP_SELECTED_GROBJS:)