AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TCanvas mit Kommazahlen ?

Ein Thema von mimi · begonnen am 2. Nov 2007 · letzter Beitrag vom 2. Nov 2007
Antwort Antwort
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#1

TCanvas mit Kommazahlen ?

  Alt 2. Nov 2007, 13:52
Hallo,
in einem Beitrag hat mir jemand von euch versucht zu erklären, wie ich Kommerzahlen in TCanvas benutzen könnte. Also jetzt für die genauigkeit wie eine Grafik Positioniert werden kann.
Ich mache das bisher immer nur so, z.b.:
Canvas.Draw(x,y,grafik)....

Aber ich verstehe nicht, was das bringen soll, man muss doch so oder so runden, damit das TCanvas verstehen bzw. verwenden kann. Ich hoffe ihr versteht das was ich meine.

Z.b. um das SVG Format da zustellen, währe das praktisch, weil dort wird nur mit Kommerzahlen gearbeitet.

Da ich nicht mir das beim besten willen nicht vorstellen kann, wollte ich mal nachfragen wie das gehen könnte.

(Leider weiß ich nicht mehr in welchen Thread das genau war, sonst könnte ich es Zitieren.).

Weil TCanvas arbeite ja nur mit Ganzen Zahlen. und manchmal ist ein Ganze Zahl einfach viel zu groß z.b. 1 oder so.....

[edit=sakura] Titel korrigiert Mfg, sakura[/edit]
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: TCanvas mit Kommerzahlen ?

  Alt 2. Nov 2007, 14:09
wenn du auf ein TCanvas zeichnest brauchst du immer Ganzzahlkoordinaten. Weil jede Einheit einem Pixel entspricht. Wenn du eine Grafik mit Fließkommakoordinaten (nicht Kommerzahlen... ) zeichnen willst musst du dir die Koordinaten errechnen und bestenfalls runden. Oder du nutzt GDI+. Dort sind Fließkommawerte erlaubt und das GDI+ Graphic Objekt kümmert sich um die Darstellung auf dem jeweiligen Device.
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#3

Re: TCanvas mit Kommerzahlen ?

  Alt 2. Nov 2007, 14:27
Zitat:
Oder du nutzt GDI+.
Genau das möchte ich nicht, weil:
01 - Ich weiß nicht ob das unter Linux nutzbar ist
02 - Ich möchte gerne Verstehen wie das im einzelnen geht. Vor allem wenn ich runde
wird es ja doch woanders da gestellt weil ich ja nicht an x: 0.3 was da stellen kann, müsste es gerundet an
0 gezeichnet werden.

Genau das möchte ich eigentlich Verhindern.
Natürlich könnte ich Jedi SDL nehmen, was es auch unter Linux gibt, aber da kenne ich mich nicht aus und weiß auch nicht ob die mit Kommerzahlen arbeiten können.

Ich möchte Eigentlich nur das Prinzip verstehen. Ich kann mir nicht vorstellen das einfach nur gerundet wird oder ? dann könnte ich es mir gleich sparen Kommerzahlen anzugeben.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: TCanvas mit Kommerzahlen ?

  Alt 2. Nov 2007, 14:31
Da der Bildschim aus einem raster besteht, wirst du irgend einen Algorithmus brauchen welcher die berechnet, welcher Pixel dein Float-Wert entspricht.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Jakob Ullmann
Jakob Ullmann

Registriert seit: 17. Feb 2007
218 Beiträge
 
Lazarus
 
#5

Re: TCanvas mit Kommerzahlen ?

  Alt 2. Nov 2007, 14:36
Es hat doch schon jemand gesagt, dass es nicht geht! Das einzige, was du machen könntest, wäre die Koordinaten in einer Variablen zu speichern und dan nur beim Zeichnen zu runden (per round). Oder kannst du mit erklären, wie du ein halbes Pixel lila und das andere Halbe orange darstellen willst?

PS: Was sind Kommerzahlen?
Jakob
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

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

Re: TCanvas mit Kommerzahlen ?

  Alt 2. Nov 2007, 14:58
Zitat von mimi:
01 - Ich weiß nicht ob das unter Linux nutzbar ist
Natürlich gibt es auch für Linux ähnliche Bibliotheken, und damit meine ich nicht gleich SDL . Die GDI+-Lib des .Net-Frameworks wird unter Linux zum Beispiel durch Cairo emuliert.
Zitat:
Vor allem wenn ich runde
wird es ja doch woanders da gestellt weil ich ja nicht an x: 0.3 was da stellen kann, müsste es gerundet an
0 gezeichnet werden.
Du rundest so radikal . Wenn ich auf 0,3 zeichnen will, aber nur auf 0 oder 1 zeichnen kann, dann zeichne ich doch einfach 70% des Pixels auf 0 und 30% auf 1. Fertig ist die Grundidee hinter der Rasterung von Vektorgrafiken.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#7

Re: TCanvas mit Kommerzahlen ?

  Alt 2. Nov 2007, 15:31
Zitat:
PS: Was sind Kommerzahlen?
1,4 währe eine Kommerzahl *G*

@Khabarakh dein Beitrag mir schonmal weiter geholfen, Vielen Dank. Das muss ich nur noch Testen....
Du meinst Wenn ich eine Grafik z.b. an Stelle: 10,12 Zeichnen möchte,
muss ich Berechnen, wieviel % jeweils links bzw. rechts gezeichnet werden müssen.
(und bei Y halt Unten oder Oben) und damit könnte ich dann ganz genau Zeichnen.....

Sehe ich das richtig ?

edit: Die Cairo Engine ist ja Intressant. Gibt es dafür schon Object Pascal header (am besten für FPC?)
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: TCanvas mit Kommerzahlen ?

  Alt 2. Nov 2007, 15:54
Zitat von mimi:
Zitat:
PS: Was sind Kommerzahlen?
1,4 währe eine Kommerzahl *G*
Nee, Kommazahl.
Und das das wären Kommerzaale.
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:40 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