| |
|
|
 |
Autor |
Nachricht |
 |
| |
| ryLIX |
#1| Verfasst am: 06.01.2009, 16:36 Titel: Analoge Rundinstrumente -bin ich zu doof?- |
 |
 |
 |
|
Mitglied Status: offline Beiträge: 180 angemeldet: 16.11.2008 Wohnort: Westoverledingen Turbo Delphi für Win32

|
Hi DPler,
es geht sich um folgendes.
Ich möchte Rundinstrumente zeichenen. Klingt nicht schwer weiß ich
Mein Problem liegt nun darin die Strichskala und den Zeiger zu zeichnen.
Ich mal in einem Panel da das ganze skalierbar bleiben soll, sich also mit der größe des Panels verändern soll.
Aber ich schaffs net die korrekten Punkte zu berechnen.
Bzw mit dem durchlaufen einer For Schleife die Skala zu zeichnen
| Code: | markieren | x + Cos(winkel) * durchmesser
y - Sin(winkel) * durchmesser |
|
Die Formel verstehe ich schon aber woher bekomme ich die Punkte x und y wenn die größe des Panels veränderbar ist?
Ich habe mal 2 Grafiken angehängt um einmal zu zeigen was ich bisher habe und was ich mir vorstelle. |
| [ An diesen Beitrag wurden eine oder mehrere Dateien angehängt. Zum Herunterladen bitte anmelden. ] |
 Zuletzt bearbeitet von ryLIX am 35.13.2090, 25:75, insgesamt 1000-mal bearbeitet. |
 |
|
|
|
| |
| jfheins |
#2| Verfasst am: 06.01.2009, 16:53 Titel: Re: Analoge Rundinstrumente -bin ich zu doof?- |
 |
 |
 |
|
Master of Desaster Alter: 20 Status: offline Beiträge: 3.141 angemeldet: 10.06.2004 Wohnort: Garching (TUM) Visual Studio 2008

|
Ich schlage vor, du definierst dir erstmal passende Polarkoordinatenj.
Also sowas wie "Ursprung in der Mitte, Winkel von unten im Uhrzeigersinn positiv"
Dafür machst du dier dann Umrechnungsfunktionen (die kann dann auch direkt skalieren) und einen seperaten Typen TPolarPoint mit den Feldern radius und winkel. (Für die Skalierung kannst du den Radius zwischen 0 und 1 festlegen, und in der Umrechnung skalieren)
Bei dem Koordinatensystem von oben sähe die Umrechung z.B. so ähnlich aus:
Delphi-Quellcode: | zusammenfalten | markieren | 1 · · · 5 · · · · 10
| function PolToKart(p: TPolPoint): TPoint;
begin
var MitteX := Panel.Width/2;
var MitteY := Panel.Height/2;
var RadiusFaktor := Min(MitteX, MitteY);
Result.X := MitteX - sin(p.Phi) * p.R * RadiusFaktor;
Result.Y := MitteY + cos(p.Phi) * p.R * RadiusFaktor;
end; |
|
Die Striche kannst du dann ja einfach zeichnen (Winkel gleich, Radius ändern ergibt einen Strich Richtung Mitte) indem du zuerst die Punkte festlegst, die dann umrechnest und dann auf das Canvas malst
(Schwieriger wirds, wenn du auch Kreisbögen malen willst, dann musst du evtl. noch ein paar Zeichenfunktionen kapseln ...)
Grüße,
Julius |
 |
 |
|
|
|
| |
| mkinzler |
#3| Verfasst am: 06.01.2009, 16:54 Titel: Re: Analoge Rundinstrumente -bin ich zu doof?- |
 |
 |
 |
|
Moderator Status: offline Beiträge: 24.962 angemeldet: 09.12.2005 Wohnort: Heilbronn RAD-Studio 2009 Pro

|
Statt / würde ich DIV verwenden |
|
 |
|
|
|
| |
| ryLIX |
#4| Verfasst am: 06.01.2009, 17:00 Titel: Re: Analoge Rundinstrumente -bin ich zu doof?- |
 |
 |
 |
|
Mitglied Status: offline Beiträge: 180 angemeldet: 16.11.2008 Wohnort: Westoverledingen Turbo Delphi für Win32

|
Hätte ich vorher erwähnen sollen das ich das ganze nich in Delphi schreib?
Bin leider im Moment noch an VB gebunden
An die Sache mit dem Ursprung hatte ich auch schon gedacht. |
 Zuletzt bearbeitet von ryLIX am 35.13.2090, 25:75, insgesamt 1000-mal bearbeitet. |
 |
|
|
|
| |
| Uwe Raabe |
#5| Verfasst am: 06.01.2009, 17:04 Titel: Re: Analoge Rundinstrumente -bin ich zu doof?- |
 |
 |
 |
|
aktives Mitglied Alter: 52 Status: offline Beiträge: 268 angemeldet: 20.01.2006 Wohnort: Lübbecke RAD-Studio 2009 Arc

|
| ryLIX hat folgendes geschrieben: | | Hätte ich vorher erwähnen sollen das ich das ganze nich in Delphi schreib? |
Ja! |
|
 |
|
|
|
| |
| ryLIX |
#6| Verfasst am: 06.01.2009, 17:32 Titel: Re: Analoge Rundinstrumente -bin ich zu doof?- |
 |
 |
 |
|
Mitglied Status: offline Beiträge: 180 angemeldet: 16.11.2008 Wohnort: Westoverledingen Turbo Delphi für Win32

|
Hmm deswegen hab ich es eigentlich in "Programmieren allgemein" gepostet da die Beschreibung ja darauf hinweist das es nicht um Delphi geht.
| Zitat: | Fragen, die sich beim Programmieren stellen und dennoch nichts mit Delphi zu tun haben.
Also auch insbesondere Fragen zu anderen Programmier- und Scriptsprachen. | |
 Zuletzt bearbeitet von ryLIX am 35.13.2090, 25:75, insgesamt 1000-mal bearbeitet. |
 |
|
|
|
| |
| jfheins |
#7| Verfasst am: 06.01.2009, 17:38 Titel: Re: Analoge Rundinstrumente -bin ich zu doof?- |
 |
 |
 |
|
Master of Desaster Alter: 20 Status: offline Beiträge: 3.141 angemeldet: 10.06.2004 Wohnort: Garching (TUM) Visual Studio 2008

|
Okay, nicht gesehen
Aber der Code da oben kompiliert bestimmt nicht in Delphi (Prism vll.)
Außerdem ist die Logik ja nicht von der Programmiersprache abhängig |
 |
 |
|
|
|
| |
| Daniel G |
#8| Verfasst am: 06.01.2009, 17:40 Titel: Re: Analoge Rundinstrumente -bin ich zu doof?- |
 |
 |
 |
|
sehr aktives Mitglied Alter: 22 Beiträge: 665 angemeldet: 27.11.2008 Wohnort: Wilhelmshaven Turbo Delphi für Win32

|
Markus,
Ist ja auch alles richtig, und dich nagelt dafür hier keiner ans Kreuz. Und Julius hat dir ja geschrieben, wie man das machen könnte.
@Julius: Und ich hab mich schon gewundert. |
|
 |
|
|
|
| |
| QuickAndDirty |
#9| Verfasst am: 06.01.2009, 18:39 Titel: Re: Analoge Rundinstrumente -bin ich zu doof?- |
 |
 |
 |
|
Mitglied Alter: 29 Status: offline Beiträge: 727 angemeldet: 13.01.2004 Wohnort: Hamm(Westf)

|
Falls du dann später geschwindigkeits probleme bekommen solltest...du must nur für nen viertelkreis die
Koordinaten berechnen den Rest kannst du an Achsen durch den Mittelpunkt spiegeln. so sparst du dir die
Kreisfunktion Gleitkomma Operationen und die Umwandlung in integer. |
 Compiler-Man und IDE-Boy Folge 1:
Compiler-Man ist IDE-Boys großes Vorbild, denn Compiler-Man ist der einzige Nerd mit einer Freundin und
er kann ihr den Schlüpfer auskompilieren ohne ihr die Hose auszuziehen.(C by AAR und FK)
Zuletzt bearbeitet von QuickAndDirty am 06.01.2009, 18:40, insgesamt 1-mal bearbeitet. |
 |
|
|
|
| |
| turboPASCAL |
#10| Verfasst am: 06.01.2009, 19:29 Titel: Re: Analoge Rundinstrumente -bin ich zu doof?- |
 |
 |
 |
|
sehr aktives Mitglied Alter: 41 Status: offline Beiträge: 3.412 angemeldet: 08.05.2005 Wohnort: Sondershausen Delphi 6 Personal

|
[OT] Analoge Rundinstrumente ? Blockflöte ? [/OT] |
 Grüße vom Rüsselmops -Mops Mopser |
 |
|
|
|
| |
| Mr_G |
#11| Verfasst am: 06.01.2009, 19:49 Titel: Re: Analoge Rundinstrumente -bin ich zu doof?- |
 |
 |
 |
|
aktives Mitglied Alter: 19 Status: offline Beiträge: 461 angemeldet: 02.09.2004 Wohnort: Duisburg Delphi 2006 Professional

|
[OT] @TP: Musste eher an ein Banjo denken: Banjo [/OT] |
|
 |
|
|
|
| |
| ryLIX |
#12| Verfasst am: 06.01.2009, 19:55 Titel: Re: Analoge Rundinstrumente -bin ich zu doof?- |
 |
 |
 |
|
Mitglied Status: offline Beiträge: 180 angemeldet: 16.11.2008 Wohnort: Westoverledingen Turbo Delphi für Win32

|
Hab nix vom Musikinstrumenten gesagt
Wenn man es ganz genau nimmt sind es ja auch digitale Rundinstrumente
Ich werd mal versuchen den Tip oben umzusetzten. |
 Zuletzt bearbeitet von ryLIX am 35.13.2090, 25:75, insgesamt 1000-mal bearbeitet. |
 |
|
|
|
| |
| ryLIX |
#13| Verfasst am: 07.01.2009, 19:48 Titel: Re: Analoge Rundinstrumente -bin ich zu doof?- |
 |
 |
 |
|
Mitglied Status: offline Beiträge: 180 angemeldet: 16.11.2008 Wohnort: Westoverledingen Turbo Delphi für Win32

|
Hab nun eine Lösung gefunden
Habe auf CodeProject ein Control gefunden welches solche Instrumente darstellt.
AGauge
Habs mir mit SharpDevelop nach Vb.Net konvertiert. |
 Zuletzt bearbeitet von ryLIX am 35.13.2090, 25:75, insgesamt 1000-mal bearbeitet. |
 |
|
|
|
| |
| taaktaak |
#14| Verfasst am: 07.01.2009, 20:28 Titel: Re: Analoge Rundinstrumente -bin ich zu doof?- |
 |
 |
 |
|
Mitglied Alter: 52 Status: offline Beiträge: 1.713 angemeldet: 25.10.2007 Wohnort: Hamburg Delphi 7 Professional

|
Praktisch, aber eigentlich auch schade:
Selber machen ist doch viel spannender!
|
 Gruß Ralph
rzMagnifier - Bildschirmlupe+ColorPicker, Version 1.3 - Nov 2008 |
 |
|
|
|
 |
|
 |
| |
|
|
| |
 
|
|