![]() |
*Neue probleme mit canvas: y-achse,
Hi,ich komme bei dem versuch eine y-achse zeichnen einfach nicht mehr weiter.
Code:
das ist mein ansatz,und ich möchte, dass die y-achse kurz vor dem ende des fensters wieder aufhört damit ich einen pfeil darauf zeichnen kann.
// y-achse
xmin:=(Image1.Width div 2) ; ymin:=(Image1.Height-20) ; xmax:=(Image1.Width div 2) ; ymax:=(Image1.Height+20) ; with Image1.Canvas do begin Pen.color:=clred ; moveto(xmin,ymin) ; lineto(xmax,ymax) ; end; ps: ich weiss,ist bestimmt eine sehr einfache lösung, aber ich mir fällt nichts mehr ein :( |
Re: probleme mit canvas: y-achse,
dein ymax ist außerhalb des sichtberen bereiches. Nur du kannst wissen von wo bis wo du deine Linie haben willst.
|
Re: probleme mit canvas: y-achse,
ja,ich weiss, ich möchte,dass die y-achse ca. 10-15 pixel von den bildrändern entfernt ist.
|
Re: probleme mit canvas: y-achse,
bei 10 pixeln würde sie bei 10 starten und bei höhe - 10 aufhören.
|
Re: probleme mit canvas: y-achse,
ja,hätte ich es ja gerne,aber wenn die -20 bzw. 20 in -10 bzw. 10 umändere,zeichnet mir delphi nur einen kleineren strich am unteren bildschirmrand!oder habe ich da jetzt was falsch verstanden?
|
Re: probleme mit canvas: y-achse,
Du musst von 10 bis height-10 zeichnen. Wenn du -10 bis 10 zeichnest, ist der Bereich zwischen -1 und 0 komplett unsichtbar. Also ymin:=10; ymax:=image1.height-10;
Hoffe geholfen zu haben Apollonius |
Re: probleme mit canvas: y-achse,
lies dir bitte nochmal genau durch was ich geschrieben hab. aktuell steht bei dir:
Delphi-Quellcode:
Wenn dein Bild also 100 hoch ist geht deine Linie von 80 bis 120. Du siehst also nur 20 Pixel
ymin:=(Image1.Height-20);
ymax:=(Image1.Height+20); Aber du willst ja das deine Linie von 20 bis 80 geht. |
Re: probleme mit canvas: y-achse,
AH,endlich, vielen dank ihr beiden!
|
probleme mit canvas: y-achse,skalierung
sry für den doppelpost,aber mir ergibt sich leider wieder ein weiteres problem,ich möchte die x-achse gerne mit strichen einteilen,und bei jedem 5. strich eine zahl haben,also 5,10,15 usw.
bis jetzt gelang es mir das der 5. strich größer als die anderen ist und ich darunter etwas schreiben kann,allerdings verstehe ich nicht wie ich es anstellen soll,das die zahl immer um 5 erhöht wird,hier erst einmal mein ansatz:
Delphi-Quellcode:
ein weiteres problem hab ich generell mit der skalierung der y-achse,hier war mein ansatz
//Beschriftung
for h:=1 to Width-15 do ; xt:=26 ; xab:=f div (xt+1) ; for i:=1 to xt do begin if i mod 5=0 then begin Font.color:=clblack ; Font.size:=10 ; Image1.Canvas.Textout(x0+i*xab,y0+L+10,'5') ; end ; end;
Delphi-Quellcode:
vllt. hat wieder jemand lösungs vorschläge,wäre dankbar!
//Skala y-achse
q:=0 ; for i:=y0 to ymax do begin q:=q+50 ; Image1.Canvas.MoveTo(x0+q,y0-10) ; Image1.Canvas.LineTo(x0+q,y0+10) ; end; b:=0 ; for i:=y0 to ymax do begin b:=b+10 ; Image1.Canvas.MoveTo(y0+b,x0-5) ; Image1.Canvas.LineTo(y0+b,x0+5) ; end; |
Re: *Neue probleme mit canvas: y-achse,
Ich habe heute einen Beitrag über eine sich dem Bereich anpassende Skala in die Code-Library eingebracht
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz