AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Ein Pfeil um 360° drehen können ohne den Ursprung zu ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Ein Pfeil um 360° drehen können ohne den Ursprung zu ändern

Ein Thema von Alex_ITA01 · begonnen am 19. Apr 2005 · letzter Beitrag vom 21. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#1

Ein Pfeil um 360° drehen können ohne den Ursprung zu ändern

  Alt 19. Apr 2005, 12:59
Hallo erstmal,
ich habe folgendes Problem:
Ich möchte auf einer eigenen Kompo (ist als Kreis dargestellt, also rund) wenn ich darüber wander das mir ein Pfeil vom Mittelpunkt bis oben hin zeichnet (0°bzw. Norden)
Wenn ich jetzt mit der linken Maus den Pfeil bewege muss er sich in dem Kreis bewegen können.Aber der Mittelpunkt bleibt immer fest.Ich möchte wie eine Art bewegliche Windrose oder sowas darstellen.
Habt ihr da eine Tip für mich wie ich das machen kann?

MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#2

Re: Ein Pfeil um 360° drehen können ohne den Ursprung zu änd

  Alt 19. Apr 2005, 13:02
Hi.

Da lässt sich bestimmt was über die trigonometrischen Funktionen und die Mausposition machen...

Frag einfach ab, wo (relativ zum Mittlepunkt) sich die Maus befindet, rechne das in einen Winkel um und zeichne dann in dem Winkel eine Linie zum Kreisrand...
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#3

Re: Ein Pfeil um 360° drehen können ohne den Ursprung zu änd

  Alt 19. Apr 2005, 13:13
das klingt so einfach...
Ich habe damit echt so meine Probleme.
Hast du vielleicht ein Codeschnipsel für mich?
Oder irgendwelche anderen Anregungen?

MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#4

Re: Ein Pfeil um 360° drehen können ohne den Ursprung zu änd

  Alt 19. Apr 2005, 13:17
Hi.

Da ich Sinus, Cosinus, Tangens u.s.w. noch nicht in der Schule hatte, kann ich jetzt nur raten...

  Line(Mittelpunkt.X, Mittelpunkt.Y, sin(asin(Maus.X)) * Radius, cos(acos(Maus.Y)) * Radius); (Alle Angaben ohne Gewähr )
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Ein Pfeil um 360° drehen können ohne den Ursprung zu änd

  Alt 19. Apr 2005, 13:21
sin(asin(x)) = x (für alle x aus [-pi/2..pi/2], sonst = x-n*pi mit n element N)
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#6

Re: Ein Pfeil um 360° drehen können ohne den Ursprung zu änd

  Alt 19. Apr 2005, 13:22
Hi.

Zitat von dizzy:
sin(asin(x)) = x (für alle x aus [-pi/2..pi/2], sonst = x-n*pi mit n element N)
[edit2] Es war geraten [/edit2]

Bekommt man mit asin() nicht den Winkel in Bogenmaß? Ich wollte doch nur den Schenkel verlängern...

[edit] Oder war das doch sinh()? [/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Ein Pfeil um 360° drehen können ohne den Ursprung zu änd

  Alt 19. Apr 2005, 13:34
Zitat von Waldteufel:
Hi.

Zitat von dizzy:
sin(asin(x)) = x (für alle x aus [-pi/2..pi/2], sonst = x-n*pi mit n element N)
[edit2] Es war geraten [/edit2]

Bekommt man mit asin() nicht den Winkel in Bogenmaß? Ich wollte doch nur den Schenkel verlängern...

[edit] Oder war das doch sinh()? [/edit]
Nichts für ungut, aber wenn du noch keine trigonometrischen Funktionen hattest, dann lass das Rumgerate lieber sein. Dadurch wird man am Ende nur noch mehr verwirrt.

OK, und hier mal mein Vorschlag:
Delphi-Quellcode:
Canvas.LineTo(Mx, My);
Canvas.MoveTo(Mx+ r*cos(alpha), My+ r*sin(alpha));
Dabei ist 0° rechts.
Mx, my sind die Koordinaten des Mittelpunktes, r ist der radius des Kreises und alpha schließlich der Winkel (im Bogenmaß).

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#8

Re: Ein Pfeil um 360° drehen können ohne den Ursprung zu änd

  Alt 19. Apr 2005, 13:35
Ah, okay danke.Werde es mal versuchen.
Ich meld mich obs geklappt hat

Danke nochmal
MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#9

Re: Ein Pfeil um 360° drehen können ohne den Ursprung zu änd

  Alt 19. Apr 2005, 13:44
@Binärbaum:
Wie bekomme ich Alpha heraus wenn ich mich im MouseMove befinde?

MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

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

Re: Ein Pfeil um 360° drehen können ohne den Ursprung zu änd

  Alt 19. Apr 2005, 13:57
Ich hab mir mal dazu eine Funktion dazu geschrieben, Erklärung s. Bild
Delphi-Quellcode:
function Angle(const p1, p2: TPoint; const InDeg: Boolean = true): Single;
begin
  if p2.X = p1.X then
  begin
    if p1.Y < p2.Y then
      Result := pi / 2
    else
      Result := 3 * pi / 2
  end
  else
  begin
    Result := Arctan((p2.Y - p1.Y) / (p2.X - p1.X));
    if p2.x < p1.x then
      Result := Result + pi;
    if Result < 0 then
      Result := Result + 2 * pi;
  end;
  if InDeg then
    Result := RadToDeg(Result);
end;
Zu beachten ist allerdings, dass mit der verkehrten y-Achse von Windows auch die Winkel verkehrt herum sind. In dem Beispiel wäre Result z.B. etwa 330 °.

Also z.B: alpha := Angle(Mittelpunkt, Point(x, y), false); @Binärbaum: Du hast MoveTo und LineTo verwechselt .
Miniaturansicht angehängter Grafiken
angle_112.png  
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:54 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