Entwickler-Ecke

Multimedia / Grafik - Rechteck auf Shape zeichnen, Größenverhältnisse beachten


daywalker0086 - Di 10.04.12 15:15
Titel: Rechteck auf Shape zeichnen, Größenverhältnisse beachten
Hallo Leute, ich steh mal wieder aufm Schlauch. Bitte helft mir.

Ich habe folgendes Problem ich habe ein Shape auf welches ich ein Rechteck zeichnen will. Soweit so gut das bekomm ich hin.

Jetzt sagen wir mal das Shape hatt die Größe von 1000 x 600 pixeln.
Darauf will ich jetzt ein Rechteck zeichnen das in wahrer Größe 7m mal 4m hat.
Jetzt dacht ich mir ok für die Breite nimmst du 900 pixel(damit das Rechteck nicht auf die Grenzen gezeichnet wird sondern ein wenig Abstand hat).
Für die Hoehe rechnest du einfach 900*5/7 = sind rund 514pixel.
Dann sollte das ja passen oder?

Was wäre aber wenn mein Bereich nur 1000 x 500 Pixel hat. Dann müsst ich ja die Höhe als referenz nehmen und darauf dann die Breite berechnen.
Geht das nicht einfacher und schneller?

Grüße Christian

Moderiert von user profile iconNarses: Titel geändert, war: "Form skalieren ich steh aufm Schlauch".


Xion - Di 10.04.12 19:23

Für ein Rechteck ist das ja kein großer Aufwand, ich gehe als davon aus, dass du viele Objekte zeichnen willst:

Dein Shape hat die Größe wxh
Deine BoundingBox hat z.B. die Größe bxa. (BoundingBox = ein Rahmen um all die vielen Dinge, die du zeichnen willst).

=> bxa auf Breite strecken (x=w)
w/b = y/a
=> y = w*a/b
=> falls y<h dann passt das Rechteck. Sonst:

=> bxa auf Höhe strecken (y=h)
x/b = h/a
=> x ist die Breite damit's passt.

Jetzt:
fX := x/b;
fY := y/a;

Jetzt hast du deine BoundingBox eingepasst.

Jetzt kannst du leicht loslegen:

Rechteck 2mx 1m => fX*2 , fY*1 Pixel
Rechteck 15mx22m => fX*15, fY*22 Pixel
...