JollyJumper8
10.10.2009, 01:36
Hallo ihr Roboterfreunde,
ich habe ein kleines Problem was mich so langsam richtig zum verzweifeln bringt.
Eigentlich ist alles ganz einfach.
Ich will lediglich zwei Positionen bestimmen.
Einmal X und Y Standpunkt
und
X und Y Zielpunkt!
Ich errechne mir daraus die Weg Koordinaten X und Y Fahrweg
und setzte das in ein Zeigerdiagramm.
Daraus entnehme ich den Quadranten und will mir eigentlich den Drehwinkel errechnen.
Dazu wollte ich mir der Winkelfunktionen behelfen aber das will und will nicht hinhauen. Die gesamte Rechnung stimmt bis zu einem ganz entscheidenen Punkt.
$regfile = "m128def.dat"
$crystal = 16000000
$baud = 9600
'Sound Portg.2 , 400 , 250
Dim Xst As Single
Dim Xzi As Single
Dim Xw As Single
Dim Yst As Single
Dim Yzi As Single
Dim Yw As Single
Dim Zw As Single
Dim Zw1 As Single
Dim Xqua As Single
Dim Yqua As Single
Dim I As Single
Dim Winkel1 As Single
Xst = 0
Yst = 0
Xzi = 2
Yzi = 3
Xw = Xzi - Xst
Yw = Yzi - Yst
If Xw = 0 And Yw = 0 Then
Winkel1 = 0
Print "Wir befidnen uns genau auf dem Nullpunkt"
End If
If Xw > 0 And Yw >= 0 Then
Winkel1 = 0
Print "Wir befidnen uns im I Quadranten"
End If
If Xw <= 0 And Yw > 0 Then
Winkel1 = 180
Print "Wir befidnen uns im II Quadranten"
End If
If Xw < 0 And Yw <= 0 Then
Winkel1 = -270
Print "Wir befidnen uns im III Quadranten"
End If
If Xw >= 0 And Yw < 0 Then
Winkel1 = 360
Print "Wir befidnen uns im IV Quadranten"
End If
Print "Der Winkel ist " ; Winkel1 ; "°"
Print "Der Weg auf der X-Achse beträgt " ; Xw
Print "Der Weg auf der Y-Achse beträgt " ; Yw
Xqua = Xw * Xw
Yqua = Yw * Yw
Zw1 = Xqua + Yqua
Zw = Sqr(zw1)
Print "Die Hypotenuse ist " ; Zw
I = Yw / Zw
Print I '0.832050201 stimmt
Print Yw '3.0 stimmt
Print Zw '3.60555124 stimmt auch
I = Sinh(i) '0.931434269 STIMMT NICHT Eigentlich 0.98281... Warum ???
Print I
I = Rad2deg(i)
Print I
I = I + Winkel1
Print "Das sollte der Winkel vom Ursprung sein " ; I
'Sound Portg.2 , 800 , 125
End
Ab dem Moment wo ich den Sinus aus I errechnen will passt es einfach nicht mehr, dabei ist doch das gar nicht besonderes!
Kann mir irgendwer erklären warum. Ich habe es über Cosinus versucht genau das gleiche Problem. Wenn ich genau den selben Rechenschritt mit dem Taschenrechner nachrechne, mit den gleichen Zahlen etc. komme ich immer auf den richtigen Wert. Damit ich auch weiß welches der richtige Wert ist habe ich das ganze im CAD nachgezeichnet und die Winkel gemessen, dass ist schon glatt peinlich. Au Back und ich wette es ist wieder eine Kleinigkeit!
Schonmal vielen Dank im vorraus.
MfG Simon
ich habe ein kleines Problem was mich so langsam richtig zum verzweifeln bringt.
Eigentlich ist alles ganz einfach.
Ich will lediglich zwei Positionen bestimmen.
Einmal X und Y Standpunkt
und
X und Y Zielpunkt!
Ich errechne mir daraus die Weg Koordinaten X und Y Fahrweg
und setzte das in ein Zeigerdiagramm.
Daraus entnehme ich den Quadranten und will mir eigentlich den Drehwinkel errechnen.
Dazu wollte ich mir der Winkelfunktionen behelfen aber das will und will nicht hinhauen. Die gesamte Rechnung stimmt bis zu einem ganz entscheidenen Punkt.
$regfile = "m128def.dat"
$crystal = 16000000
$baud = 9600
'Sound Portg.2 , 400 , 250
Dim Xst As Single
Dim Xzi As Single
Dim Xw As Single
Dim Yst As Single
Dim Yzi As Single
Dim Yw As Single
Dim Zw As Single
Dim Zw1 As Single
Dim Xqua As Single
Dim Yqua As Single
Dim I As Single
Dim Winkel1 As Single
Xst = 0
Yst = 0
Xzi = 2
Yzi = 3
Xw = Xzi - Xst
Yw = Yzi - Yst
If Xw = 0 And Yw = 0 Then
Winkel1 = 0
Print "Wir befidnen uns genau auf dem Nullpunkt"
End If
If Xw > 0 And Yw >= 0 Then
Winkel1 = 0
Print "Wir befidnen uns im I Quadranten"
End If
If Xw <= 0 And Yw > 0 Then
Winkel1 = 180
Print "Wir befidnen uns im II Quadranten"
End If
If Xw < 0 And Yw <= 0 Then
Winkel1 = -270
Print "Wir befidnen uns im III Quadranten"
End If
If Xw >= 0 And Yw < 0 Then
Winkel1 = 360
Print "Wir befidnen uns im IV Quadranten"
End If
Print "Der Winkel ist " ; Winkel1 ; "°"
Print "Der Weg auf der X-Achse beträgt " ; Xw
Print "Der Weg auf der Y-Achse beträgt " ; Yw
Xqua = Xw * Xw
Yqua = Yw * Yw
Zw1 = Xqua + Yqua
Zw = Sqr(zw1)
Print "Die Hypotenuse ist " ; Zw
I = Yw / Zw
Print I '0.832050201 stimmt
Print Yw '3.0 stimmt
Print Zw '3.60555124 stimmt auch
I = Sinh(i) '0.931434269 STIMMT NICHT Eigentlich 0.98281... Warum ???
Print I
I = Rad2deg(i)
Print I
I = I + Winkel1
Print "Das sollte der Winkel vom Ursprung sein " ; I
'Sound Portg.2 , 800 , 125
End
Ab dem Moment wo ich den Sinus aus I errechnen will passt es einfach nicht mehr, dabei ist doch das gar nicht besonderes!
Kann mir irgendwer erklären warum. Ich habe es über Cosinus versucht genau das gleiche Problem. Wenn ich genau den selben Rechenschritt mit dem Taschenrechner nachrechne, mit den gleichen Zahlen etc. komme ich immer auf den richtigen Wert. Damit ich auch weiß welches der richtige Wert ist habe ich das ganze im CAD nachgezeichnet und die Winkel gemessen, dass ist schon glatt peinlich. Au Back und ich wette es ist wieder eine Kleinigkeit!
Schonmal vielen Dank im vorraus.
MfG Simon