 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 07.01.2007, 15:13 Titel: Kreisberechnungszeugs |
|
|
also, alles gute im neuen Jahr und Frohe Weihnachten (ja war lange net mehr hier )
habe ein kleines Mathematisches problem..
ich habe für den Thread ein kleines Beispiel geschrieben..
Code: |
#define Links &h4B
#define Rechts &h4D
#define Hoch &h48
#define Runter &h50
Dim as Single X,Y,SP
screen 18
X=50
Y=50
SP=1
do
X=X+SIN(SP)/(10000)
Y=Y+COS(SP)/(10000)
if multikey(rechts) then SP-=.000005
IF multikey(links) then SP+=.000005
PSET(X,Y)
loop until multikey(1)
|
das Programm zeichnet einen Punkt, den man mit den Tasten links/rechts steuernkann..
Die Richtung und die Geschwindigkeit werden durch die X und Y beschleunigung SIN() COS() berechnet..
was ich jetzt eigendlich wissen wollte, ich möchte das ganze umrechnen und zwar so, das ich eine Variable für die Geschwindigkeit und eine für die Richtung habe ( 0°-360°)
die Lösung wird wahrscheinlich sehr einfach.. ich hab schon viel rumprobiert.. aber ich bin wohl zu blöd dafür
ich hoffe jemand kann mir dabei helfen..
grüße d!rty h4rry
Editiert durch Moderator: Bild bei Imageshack hochgeladen. _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 07.01.2007, 15:29 Titel: |
|
|
Der ganze Gag ist, dass freeBASIC nicht in DEG sondern in RAD rechnet; du hast also als 'Richtungsangabe' keinen Wert zwischen 0 und 360, sondern einen zwischen 0 und 2 * pi. Du kannst dir ein einfaches Makro schreiben, um die Winkel-Systeme umzurechnen:
Code: | #DEFINE pi ( 4# * ATN(1) )
#DEFINE RAD(x) ( pi * x / 180 )
#DEFINE DEG(x) ( x * 180 / pi ) |
In deinem Programm würdest du es dann so einsetzen:
Code: | x += Sin( Rad(Winkel) ) * Radius |
Radius kannst du hier als Äquivalent zur Geschwindigkeit betrachten, Winkel ist deine gewünschte RichtungsVariable, die einen Winkel zwischen 0 und 360 angibt.
Funktioniert übrigens auch mit Werten größer 360, z.B. sind 370° gleichbedeutend mit 10°.
Der Winkel ist immer relativ zum Positiven Ast der X-Achse:
Code: |
| /|
| / |
|/ a|
------+--------
| |
(Wobei a hier den namen des Winkels darstellen soll.) _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 07.01.2007, 16:17 Titel: |
|
|
@Harry:
Dein Link auf das Bild ist geschützter Webspace.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 07.01.2007, 16:45 Titel: |
|
|
danke für die antworten, ich werde das mal so testen denke ich..
Code: |
#define pi ( 4# * ATN(1) )
#define RAD(x) ( pi * x / 180 )
#define DEG(x) ( x * 180 / pi )
#define Links &h4B
#define Rechts &h4D
#define Hoch &h48
#define Runter &h50
Dim as Single X,Y,Winkel,Radius
screen 18
X=50
Y=50
Winkel=1
Radius=10
do
x += Sin( Rad(Winkel) ) * Radius
y += Sin( Rad(Winkel) ) * Radius
if multikey(rechts) then Winkel-=.000005
IF multikey(links) then Winkel+=.000005
PSET(X,Y)
loop until multikey(1)
|
ich bin sicher das funzt
danke
das mit dem bild, naja, war auch net so wichtig
d!rty h4rry _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 07.01.2007, 17:17 Titel: |
|
|
Also wenn man auf deine Seite geht ( http://k3nnyhtn.k3.funpic.de/ ) und dann Grafik1.jpg anklickt geht es. Entferne das Bild bitte, denn sonst kommt immer das Passworteingabefeld
(den link kannst du ja da posten ) _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 07.01.2007, 17:35 Titel: |
|
|
d1rty.h4rry hat Folgendes geschrieben: | Code: |
#define pi ( 4# * ATN(1) )
#define RAD(x) ( pi * x / 180 )
#define DEG(x) ( x * 180 / pi ) |
| In Schleifen ist es immer sinnvoll, sowenig rechenintensive Anweisungen wie möglich auszuführen:
Deshalb ist Code: | #define Rad(x) (Atn(1)/45)
#define Deg(x) ( x * 45 / Atn(1) | schon mal eine Einsparung..
Code: | [(4*Atn(1)*x/180)=(4*Atn(1)*x/4*45)=(Atn(1)*x/45)] |
..denkste, denn der Code wird ja überall ersetzt.
Also ne Function davon machen, imho
..und mach bitte den blöden Link wech..
[Edit]
Danke, oh Moderator
..dafür kommt jetzt mein Bild für Winkelberechnungen:
..das habter nu davon..
Gruß
ytwinky
Editiert durch Moderator: Code-Tags um Formel ergänzt, weil das Forum Smilies reingebaut hat. (Sebastian) _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO..
Zuletzt bearbeitet von ytwinky am 07.01.2007, 18:48, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 07.01.2007, 17:58 Titel: |
|
|
Du sagst es: _einmal_.
Wobei ich das nicht als Vorteil sondern, als Nachteil auslegen würde. _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 12.01.2007, 21:02 Titel: |
|
|
Sow wie automatisches Speichern von Passwörtern ohne manuelle Bestätigung?
Naja, gut, da kann man eigentlich nix sagen - einmal wird man ja gefragt, ob man einmal/immer/nie speichern will
anyway, ich empfehle, NIE auf immer speichern zu klicken - man ist überrascht, was alles als Passwort gespeichert wird.
Sebastian, welchen IE hast du eigentlich? Noch immer den IE6 oder hast du das angebotene Sicherheitsupdate auf Version 7 mitgemacht? Wenn ja, wie findest du die neue Klamotte?
Ich weiß noch nicht recht, was ich davon halten soll. Vieles ist ganz gut, Tabbed Browsing, eine Suchleiste wie bei FireFox für Google, Wikipedia, etc., und dabei ein bisschen schlanker als der FF.
Aber das Design... irgendwie... naja, ich mochte das XP-Design noch nie...
Have a nice day
Ciao _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|