Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ein Rechteck im Canvas drehen (https://www.delphipraxis.net/106948-ein-rechteck-im-canvas-drehen.html)

Christian18 19. Jan 2008 13:45


Ein Rechteck im Canvas drehen
 
Hallo,

wie kann ich in ein Canvas ein Rechteck zeichen? Dieses Rechteck soll komplett mit Farbe ausgefüllt sein und unter einen bestimmten Winkel drehbar sein. Zum Beispiel, wenn ich einen Winkel von 45° eingebe, dass soll das Rechteck auf einer Ecke stehen.

MFG Christian18

DeddyH 19. Jan 2008 13:54

Re: Ein Rechteck im Canvas drehen
 
Such mal nach SetWorldTransform.

Nikolas 19. Jan 2008 14:00

Re: Ein Rechteck im Canvas drehen
 
Zum selbstschreiben, wäre eine Rotationsmatrix (siehe Wikipedia) ganz nützlich. Wie du das dann zeichnest, weiss ich nicht genau, aber die Canvas hat sicher so was wie ein drawPolygon, das höchstwahrscheinlich auch einen Parameter zum ausfüllen.
Delphi-Quellcode:
Also grob: linksunten=(0,0), rechtsoben=(190,200), rechtsunten=(190,0), linksoben=(0,200) (redundanz wird benötigt!)
dann musst du das rechteck so verschieben, dass sein Mittelpunkt bei (0,0) ist:
alleXKoordinaten -= 190/2
alleYKoordinaten -= 100

AllEKoordinaten * Rotationsmatrix(winkel)

Wiederzurückschieben (x+=190/2, y += 100)

canvas.drawPolygon(punkte,filled=True)
So im PseudoCode


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz