Richtung aus Sinus und Cosinus berechnen?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Smily

Betreff: Richtung aus Sinus und Cosinus berechnen?

BeitragSa, Feb 12, 2005 17:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
Wenn ich eine Variable habe, in der die Richtung steht (In °) kann ich ein Bild so über den Bildschirm bewegen:

Code: [AUSKLAPPEN]
X# = X# + Sin(Richtung)
Y# = Y# + -Cos(Richtung)

Wie muss ich dass aber machen, wenn ich die Richtung aus Sinus und Cosinus berrechnen will?

Ich bin bereits Soweit gekommen:
Code: [AUSKLAPPEN]
RichtungX = Asin(SchritteX#)
RichtungY = Acos(SchritteY#)

Nun habe ich aber 2 Werte. Was muss ich nun machen, wenn ich daraus die Richtung berechnen will?
 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragSa, Feb 12, 2005 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi.

x=x+COS(winkel)*speed
y=y+SIN(winkel)*speed

Besser wäre es noch, wenn du xvel und yvel auch noch includierst.

Toni
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***

Smily

BeitragSa, Feb 12, 2005 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Was hat das jetzt mit meiner Frage zu tun?
Ich habe doch nicht gefragt, wie ich die Geschwindigkeit einstellen kann.
 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragSa, Feb 12, 2005 18:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi.

Du brauchst also den Winkel aus deiner Bewegung heraus ?

Code: [AUSKLAPPEN]
winkel#=(ATan2(yvel,xvel)+360) Mod 360

Code: [AUSKLAPPEN]
speed# = Sqr(xvel*xvel + yvel*yvel)


Vielleicht kannst damit was anfangen ...

Toni
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***
 

Antsan

BeitragMo, Feb 14, 2005 14:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab ein ähnliches Problem: Ich wollte per Mausklick ein Männchen (mit drehen) über den Bildschirm bewegen. Das heisst, ich habe nur den Abstand zwischen dem aktuellem Punkt und dem Zielpunkt. Wie kann ich daraus einen Winkel zwischen 0 und 360 Grad berechnen?
 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragMo, Feb 14, 2005 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.

Steht doch oben, oder ?

Toni
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***
 

Blitzkrieg Bop

BeitragMo, Feb 14, 2005 15:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Atan / Atan2. -> OH!
~ Hey Ho Let's Go ~

Smily

Betreff: Bild Drehen.

BeitragFr, Feb 18, 2005 19:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Ich habe da noch ein anderes Problem.
Ich möchte es so machen:
Wenn ich die Maus über den Bildschirm bewege, dann dreht sich die Maus immer in die Richtung, in die sie sich bewegt.
Wenn ich die Einzelnen Bilder Deklariere (360: Für jede Richtung eins), Dauert jedes Länger als das Vorherige. Wieso? Ich kopiere immer das Bild davor und drehe es um 1°.
Außerdem sind am Rand die Maskfarben zu erkennen.

Artemis

BeitragFr, Feb 18, 2005 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Also:
Setzte vor dem Drehen TFORMFILTER auf 0
und dreh das immer mehr:
Code: [AUSKLAPPEN]

TFORMFILTER 0
image = loadimage("Maus.bmp")
dim imager(359)
for i = 1 to 395
  createimage
  imager(i) = rotateimage image,i
next
TFORMFILTER 1


Dadurch beugst du dem Fehler vor der bei zu vielem drehen entstehen kann:
Wenn du ein Bild drei Mal gedreht hast, sind die Pixel teilweise verschoben, da sie ja nicht genau gezeichnet werden!!!
nach 359 umdrehungen würde dein Bild ziemlich verhunzt aussehen!!

Spikespine

BeitragFr, Feb 18, 2005 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde sagen
1. nicht das vorangegangene Bild um 1° drehen, sondern das Originalbild immer um 1° _mehr_ (d.h. zuerst kopieren, dann um den wert, den du in einer Zählschleife erhöhst, drehen)

2.
Zitat:
Außerdem sind am Rand die Maskfarben zu erkennen.

Hast du MaskImage vor oder nach dem rotieren eingesetzt? Wenn letzteres der Fall ist, setze den Befehl vor RotateImage.

grüße,
Spike

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group