AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

winkel berechnung

Ein Thema von smc · begonnen am 28. Jul 2006 · letzter Beitrag vom 2. Aug 2006
Antwort Antwort
smc

Registriert seit: 21. Dez 2005
49 Beiträge
 
#1

winkel berechnung

  Alt 28. Jul 2006, 13:53
Hallo,

habe da ein kleines Problem mit der Angle berechnung von DrawRotate.

Die Drawrotate Angle definiert man von 0 bis 255 wo 256 dann wieder 0 ist.

Mein eingabewert ist allerdings ein 'wenig' anders:

0 ist hier norden
4,5 ist Osten
1,5 ist Westen
3 ist Süden

(demnach gegen den Uhrzeigersinn)

das ganze geht bis 6~ was dann wieder norden ist.

Ich will nun beide werte zusammen verwenden können, deshalb denke ich mir beide am besten in grad umrechne.

Das Problem ist nur wie? Hätte wohl in Mathe bisschen besser aufpassen sollen
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: winkel berechnung

  Alt 28. Jul 2006, 13:56
Wenn x dein Eingabewert ist:

256 - ((x mod 6) * 128 / 3)

Das dürfte gehen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
smc

Registriert seit: 21. Dez 2005
49 Beiträge
 
#3

Re: winkel berechnung

  Alt 28. Jul 2006, 14:08
wow danke für die schnelle antwort, werde es heute abend testen

mod ist ein befehl der den rest einer division ausgibt oder?
7 : 2 = 3 rest 1

1 wäre dann das ergebnis von mod?
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: winkel berechnung

  Alt 28. Jul 2006, 14:28
Richtig.

Das mod ist vermutlich unnötig, du kannst es auch weglassen, da DrawRotate das übernimmt.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: winkel berechnung

  Alt 28. Jul 2006, 15:18
Hallo Manuel,

kein Wunder, wenn die Borg immer an unerwarteten Stellen auftauchen - bei solchen Navigationskünsten!

Zur Lösung wird Dreisatz und ein Quadrantensprung benötigt:

Delphi-Quellcode:
function Arc6To256(x: Extended): Byte;
begin
  Result := Round((x + 1.5) / 6 * 256); // mod 256 geschieht implizit
end;
Du aber verzichtest auf den Sprung und kehrst statt dessen die Zählrichtung um.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: winkel berechnung

  Alt 28. Jul 2006, 15:28
Stimmt - ich habe statt "gegen den Uhrzeigersinn" so etwas wie "andere Richtung" verstanden und daher die Zählrichtung umgekehrt.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.182 Beiträge
 
Delphi 12 Athens
 
#7

Re: winkel berechnung

  Alt 28. Jul 2006, 15:33
Zitat von 3_of_8:
Das mod ist vermutlich unnötig, du kannst es auch weglassen, da DrawRotate das übernimmt.
nicht nur das ... MOD kannst du nicht auf reelle Zahlen anwenden

rein mathematisch hätteste das doch auch selber lösen können?
(6 - x) / 6 * 256 +/- offset
oder
(6 - x +/- offset) / 6 * 256


6 - x = Richtung umkehren
... / 6 * 256 = Scalierung ändern
... + offset = halt wenn die Ausrichtung anders ist

Zum Schluß könnte man noch die Grenzen auf verschiedenste Weisen anpassen.
(also wenn das Ergebnis durch das Offset unter 0, oder über 255 hinausgeht)

Delphi-Quellcode:
x256 := Round(6 - x6 + 1.5) / 6 * 256)

// oder halt
x256 := Round(6 - x6 + 1.5) / 6 * 256) mod 256;
If x256 < 0 Then Inc(x256, 256);
(die 1.5 sind nur abgeschrieben, hab grad nicht die Nerven, um an Himmelsrichtungen zu denken ._.)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
smc

Registriert seit: 21. Dez 2005
49 Beiträge
 
#8

Re: winkel berechnung

  Alt 2. Aug 2006, 10:23
funzt soweit so gut, danke an alle!
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#9

Re: winkel berechnung

  Alt 2. Aug 2006, 10:56
Nur mal so als Frage:
Ist bei dir Westen wirklich bei genau 1,5 oder doch Pi/2?
Denn 360° mit 2*Pi und eben rund 6 fände ich für einen Kreis logischer...


Flare
Willy Scheibel
  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 08:42 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