AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Neuen Beitrag zur Code-Library hinzufügen Delphi Eine Skala, die sich dem Bereich anpasst
Thema durchsuchen
Ansicht
Themen-Optionen

Eine Skala, die sich dem Bereich anpasst

Ein Thema von Dipl Phys Ernst Winter · begonnen am 17. Mai 2009 · letzter Beitrag vom 25. Mai 2009
Antwort Antwort
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

Re: Eine Skala, die sich dem Bereich anpasst

  Alt 25. Mai 2009, 04:52
Zitat von Dipl Phys Ernst Winter:
Der gewünschte Abstand ist eine Strecke auf dem Bildschirm, ich kenne hierfür kein anderes Maß als Pixel.
Entschuldige, so gern ich deine Beiträge lese, diesmal verstehe ich nur Bahnhof.
Also ich kenne noch 'cm', 'mm' usw. Zudem ist ein 'Pixel' keine Maßeinheit, sondern die Bezeichnung für einen digitalen Bildpunkt.
Wenn Du meinen Beitrag aufmerksam gelesen, hast, müsste Dir mein einfaches Beispiel aufgefallen sein: Die Anzahl der gewünschten Unterteilungen (Tics).
Wenn ich solche Achsen benötige, zeichne ich sie nur manchmal auf den Bildschirm. Manchmal zeichne ich sie auch per Hand auf ein Blatt Papier oder lasse es einen Plotter erledigen, die beide -wie bekannt- die Maßeinheit 'Pixel' nicht kennen. Und wenn ich sie in ein Fenster zeichne, möchte ich doch, das sich die Grafik der Fenstergröße anpasst, also kann ich keine konstante Anzahl von Pixeln angeben. Zudem versuche ich, meine Grafiken unabhängig von der Auflösung zu zeichnen. Sie sollen z.B. bildschirmfüllend sein, also sowohl auf einem 100x200 als auch auf einem 3000x4000 Bildschirm möglichst gleich aussehen: Wie soll das mit deinem Verfahren funktionieren?

Aus diesen Gründen ist es mir egal, wie weit die Ticks auseinander liegen sollen. Ich definiere die Anzahl der Tics, die ich sehen will (normalerweise 6-12, wegen der Übersichtlichkeit), den Rest erledigt mein Achsenskalierer.

Eigentlich ist mein Verfahren ganz einfach:
1. Normalisieren der XA und XE auf Werte zwischen 0 und 9.9999
2. Berechnen des gewünschten Abstandes in Einheiten: DX = (XE-XA)/Anzahl_gewünschter_Tics.
3. Anpassen von DX auf den nächsten Wert [0.1, 0.2, 0.25, 0.5, 1.0, 2.0, 2.5, 5.0] (=> DX')
4. Anpassen von XA' und XE', sodaß XA' = x * DX' (x = ganze Zahl und XA' <= XA mit größtem x). (XE' = y*DX mit XE'>=XE mit kleinstem y)
5. Hochrechnen von XA', XE' und DX' auf die Ursprungsgröße mit Hilfe des Faktors aus (1)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:56 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