AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Canvas Bezugspunkt ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Canvas Bezugspunkt ändern

Ein Thema von Flo.Hoe · begonnen am 17. Mär 2007 · letzter Beitrag vom 10. Apr 2007
Antwort Antwort
Seite 2 von 2     12   
Flo.Hoe

Registriert seit: 28. Sep 2006
Ort: Berlin
73 Beiträge
 
Turbo C++
 
#11

Re: Canvas Bezugspunkt ändern

  Alt 18. Mär 2007, 17:33
Ja ich glaub auch. Das ist bestimmt sinnvoller. Dann komm ich wenigstens nicht so schnell bei mehreren Objekten durcheinander.
Aber wie ist das möglich?
Florian
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Canvas Bezugspunkt ändern

  Alt 18. Mär 2007, 18:03
Zitat von Flo.Hoe:
Aber wie ist das möglich?
Was? Wie man mit Offscreen-Bitmaps arbeitet? Die DP-Suche müsste dazu was finden.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#13

Re: Canvas Bezugspunkt ändern

  Alt 18. Mär 2007, 20:32
Zitat von Cöster:
Sonst könntest du ja auch erst alles auf ein Offscreen-Bitmap zeichnen und das dann an die Position (30|30) auf das Canvas kopieren.
Wenn man also etwas auf einem 50x50-Image zeichnen will, soll man dafür ein 2,5-mal so großes Bitmap erstellen ?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Canvas Bezugspunkt ändern

  Alt 19. Mär 2007, 15:08
Zitat von Khabarakh:
Zitat von Cöster:
Sonst könntest du ja auch erst alles auf ein Offscreen-Bitmap zeichnen und das dann an die Position (30|30) auf das Canvas kopieren.
Wenn man also etwas auf einem 50x50-Image zeichnen will, soll man dafür ein 2,5-mal so großes Bitmap erstellen ?
Wie kommst du darauf? Dazu bräuchte man dann nur ein 20x20-Offscreen-Bitmap. Die Geschichte mit dem Offscreen-Bitmap geht aber natürlich nur, wenn man nur im ersten Quadranten zeichnet (ist doch der erste, oder? Der rein positive Bereich? Müsste ja rechts unten (statt wie im Mathe-Unterricht rechts oben) sein, weil die y-Achse ja gespiegelt ist).
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#15

Re: Canvas Bezugspunkt ändern

  Alt 19. Mär 2007, 17:16
Ich merke gerade erst, dass dein Beispiel sowieso etwas verquer ist . Nehmen wir mal an, ich will eine Linie ((30|30);(80|80)) zeichnen, also die Diagonale des Images. Dann muss ich doch wohl ein 80x80-Bitmap erstellen und dessen Rect(30, 30, 80, 80)-Ausschnitt auf das Image ((0|0)) kopieren.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#16

Re: Canvas Bezugspunkt ändern

  Alt 19. Mär 2007, 18:36
Hallo,

da bietet sich doch eine Hilfsprozedur an:
Delphi-Quellcode:
procedure PosRectangle(aCanvas: TCanvas;Left,Top,Width,Height: Integer);
begin
  aCanvas.Rectangle(Left,Top,Left+Width,Top+Height);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  PosRectangle(PaintBox1.Canvas,30,30,70,70);
end;
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Canvas Bezugspunkt ändern

  Alt 19. Mär 2007, 21:24
Zitat von Khabarakh:
Ich merke gerade erst, dass dein Beispiel sowieso etwas verquer ist . Nehmen wir mal an, ich will eine Linie ((30|30);(80|80)) zeichnen, also die Diagonale des Images. Dann muss ich doch wohl ein 80x80-Bitmap erstellen und dessen Rect(30, 30, 80, 80)-Ausschnitt auf das Image ((0|0)) kopieren.
Nene, er will den Bezugspunkt auf (30|30) setzen, NICHT (-30|-30). D.h., wenn er 0 schreibt, soll bei 30 gezeichnet werden. Wenn er quer durch ein 50x50-Image zeichnen wollte (was er aber wahrscheinlich nicht will, weil er nur jenseits der 30en zeichnen will), müsste er schreiben wollen "MoveTo(-30,-30); LineTo(20, 20);" Das würde mit dem Offscreen-Bitmap nicht funzen (wg. negativen Werten).
  Mit Zitat antworten Zitat
soncer

Registriert seit: 10. Apr 2007
1 Beiträge
 
#18

Re: Canvas Bezugspunkt ändern

  Alt 10. Apr 2007, 10:25
Hi,

den Bezugspunkt kannst du ändern mit[Movewindoworg(canvas.handle, 35, 35, nil)] oder auch ohne nil.

mfg

soncer
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:20 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