• Anmelden

1

Freitag, 11. April 2008, 17:44

Winkel Berechnen

Ok.. das klingt jetzt hart.. aber..

Wie berechne ich den Winkel einer geraden von punkt A nach Punkt B, wenn man davon ausgeht, dass der grundpunkt eine horizontale gerade ist.

Beispielbild:
Bild

A = Ein Picture
B = mauszeiger ( bewegt sich eigentlich immer frei auf dem Screen )

1 = 1. Winkel
2 = 2. Winkel

ich benötige einen der beiden Winkel.

Jetzt weiß ich ja, dass des ziemlich performance zieht.. Daher brauch ich im Script ne Abfrage, ob der Winkel sich verändert hat. Wenn ja, neue Berechnung.
zudem soll der Winkel nur berechnet werden, wenn $maus_y[0] kleiner als 420 ist.

Das ergebniss sollte wenn möglich in die Array

Quellcode

1
$schwerwinkel[0]


eingebracht werden.


Ich hoffe irgendwer kennt ein Script dafür, oder kann eins machen?... Bin nämlich kein Überdimensionales Mathegenie.

Als Belohnung winkt die gastrolle als Bürgermeister von Rallverey + Crediteintrag in "König der Kartenmonster".
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

2

Freitag, 11. April 2008, 18:04

das ganze lässt sich auf ein rechtwinkeliges Dreieck zurückführen. Ich hab mir mal erlaubt, deine Skizze zu erweitern:
Bild

Drag-On

3

Freitag, 11. April 2008, 19:35

Dafür braucht man sinus und cosinus und tangens (ok eins von den 3en nicht), und ich wüsste nicht wie ma das in rgss ... achso arctan ist eine Funktion aus rgss? o.o

Ja, vielleicht lässt es sich SO auf ein rechtwínkliges Dreieck zurückführen. Aber wenn der gesuchte Winkel mal 90° beträgt kann man den Winkel nicht ausrechnen.

4

Freitag, 11. April 2008, 19:47

@SLB: das Point modul was du von mir hast, kann genau das... hast du das vergessen?
Realität ist nur eine subjektive Wahrnehmungsstörung.

Alles ist wahr, wenn man für wahr einen bestimmten Wert annimmt.

5

Freitag, 11. April 2008, 20:22

Das bringt Fehler im Pixelmovement, Karten KS und Hit-Anzeige Script.. sowie in sich selbst XD
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

6

Freitag, 11. April 2008, 20:41

hier mein formen modul

(du brauchst bloß Point)
»Hanmac« hat folgende Datei angehängt:
  • class.txt (12,97 kB - 20 mal heruntergeladen - zuletzt: 24. Dezember 2009, 00:48)
Realität ist nur eine subjektive Wahrnehmungsstörung.

Alles ist wahr, wenn man für wahr einen bestimmten Wert annimmt.

7

Freitag, 11. April 2008, 21:28

Zitat

achso arctan ist eine Funktion aus rgss?
Das auch, aber das ist auch eine ganz normale Mathe-Funktion, der Arcus-Tangens. Manchmal wird der auch mit tan^-1 abgekürzt.

Zitat

Aber wenn der gesuchte Winkel mal 90° beträgt kann man den Winkel nicht ausrechnen.
Diesen speziellen Fall kann man ja dann abfangen ;) Mit allen anderen Winkeln geht es nämlich ;)

@Hanmac: Ich weiß ja nicht, was da in deinem Modul steht, aber ich bin eigentlich der Meinung, dass man für so simple Rechnungen kein extra-Modul braucht. Aber ist mal wieder Geschmacksache ;)

Drag-On

8

Freitag, 11. April 2008, 21:31

Das modul rechent auch nur 90° Winkel zusammen.. also
90°, 180°, 270° und 0°

Ich brauch das aber Winkelgenau.. Da muss also schon ma 53°... 66°.. etc.. rauskommen...

Kann des wer anpassen???

Ich brauch das um ein Schwertpicture immer auf die Maus zeigen zu lassen ( per single_rotate Funktion eines andren Scripts ).
also

Quellcode

1
$game_screen.pictures[149].single_rotate($schwertwinkel)


$schwertwinkel iss dann die Winkelvariable
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

9

Freitag, 11. April 2008, 21:45

Ja, nimm doch die Formel, die ich gepostet hab ;)

Drag-On

10

Freitag, 11. April 2008, 21:47

XD.. Ich bin kein Mathe Ass...

Wenn ich keine Beispiele hab, check ich sowas nicht...


War in der Schule schon in sowas schlecht.. Des is au der Grund, warum ichs nimmer weiß.. habs verdrengt XD
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

11

Freitag, 11. April 2008, 21:50

Du setzt in deiner Methode als Parameter einfach sowas ein:

Ruby Quellcode

1
$game_screen.pictures[149].single_rotate(Math.arctan((PIC1.y-PIC2.y)/(PIC1.x-PIC2.x)))


Drag-On

12

Freitag, 11. April 2008, 21:54

Siehe:
Bild
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

13

Freitag, 11. April 2008, 22:50

Oh, sry, die Funktion heißt bloß atan().

Ruby Quellcode

1
$game_screen.pictures[149].single_rotate(Math.atan((PIC1.y-PIC2.y)/(PIC1.x-PIC2.x)))


Drag-On

14

Samstag, 12. April 2008, 01:03

k..irgendwie will sich das Bild ned drehen lassen XD

es bewegt sich immer im Bereich von 1-3 Pixel nach Links und Rechts..das wars...
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

15

Samstag, 12. April 2008, 08:40

du musst noch von rand in grad umechnen...
(siehe meine funktion dazu)
Realität ist nur eine subjektive Wahrnehmungsstörung.

Alles ist wahr, wenn man für wahr einen bestimmten Wert annimmt.

16

Samstag, 12. April 2008, 12:31

Zitat

XD.. Ich bin kein Mathe Ass...

Wenn ich keine Beispiele hab, check ich sowas nicht...


...
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

17

Samstag, 12. April 2008, 17:25

aso, die Funktion nimmt einen winkel entgegen... Ist ja ungewöhnlich.

Zur Erklärung: Die Berechnung mit atan liefert den Winkel als Radiant, also in Pi gemessen. Dabei gilt 2Pi = 360°. Als Umrechnungsfaktor musst du also noch 180°/Pi hinzu multiplizieren.

Ruby Quellcode

1
$game_screen.pictures[149].single_rotate(Math.atan((PIC1.y-PIC2.y)/(PIC1.x-PIC2.x))*(180/Math.PI))


Achja: Wenn du es so wie jetzt machst, wird es einen Fehler geben, wenn beide Objekte direkt untereinander sind. Den müsste man noch abfangen. Aber schau erstmal, ob es so geht ;)

Drag-On

18

Samstag, 12. April 2008, 18:12


Ruby Quellcode

1
$game_screen.pictures[149].single_rotate(Math.atan((PIC1.y-PIC2.y)/(PIC1.x-PIC2.x))*(180/Math.PI))



Es heißt:

Ruby Quellcode

1
Math::PI


und nicht:

Ruby Quellcode

1
Math.PI


Dürfte damit nen Fehler geben.

Monsta

19

Samstag, 12. April 2008, 22:11

würde auch nicht gehn

fOetzbärchen hat mein prob via ICQ gelöst.. trotzdem danke an alle.. *closen plz*
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

20

Samstag, 12. April 2008, 22:15

Bevor ich hier dicht mache: Was hat er denn anders gemacht?

Drag-On

Social Bookmarks