Punkteverschiebung

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Mr Hopp

Betreff: Punkteverschiebung

BeitragMo, Nov 13, 2006 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Ich progge derzeitig an einem Spiel, in dem ich derzeitig vor dem Problem stehe, dass ich zwei Images miteinander verbinden will. Dazu muss ich (logischerweiße) die x und y koords errechnen (imagehandle ist midhandle). Wie kann ich nun errechnen, welche Koordinate der punkt oben rechts auf dem Image bei einem Winkel von 32° hat? (Beispiel)

Ich dachte da an so etwas:
Code: [AUSKLAPPEN]
Line x+Cos(winkel#)*50,y+Sin(winkel#+180)*-13.5*2,300,136.5

Allerdings ist das Fehlerhaft. Das Image ist 100*27 Pixel groß.
Zitat:
Wie poste ich falsch?

Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann.

Iguan

BeitragMo, Nov 13, 2006 23:32
Antworten mit Zitat
Benutzer-Profile anzeigen
du könntest den schnittpunkt zweier virtuellen linien berechnen... eine entspricht dem bildrand, die andere vom mittelpunkt deines bildes nach aussen im winkel von 32°...

ich hoffe du verstehst was ich meine Rolling Eyes

TheMatrix

BeitragDi, Nov 14, 2006 0:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hoffe ich verstehe dich jetzt nicht falsch.

Meinst du soetwas eventuell?

Code: [AUSKLAPPEN]

Graphics 640,480,16,2

img1 = CreateImage(50,50) : SetBuffer ImageBuffer(img1) : ClsColor 255,255,0 : Cls
img2 = CreateImage(50,50) : SetBuffer ImageBuffer(img2) : ClsColor 255,0,0 : Cls

bx = 500 : by = 100 : SetBuffer BackBuffer()

While Not KeyHit(1)
 Cls
 mx = MouseX() : my = MouseY()

 difx = mx-bx : dify = my-by
 winkel# = ATan2(difx,dify)

 Line mx,my,bx,by :
 
 Text 0,0,"Der Winkel zwischen diesen Punkten beträgt: "+winkel#

 DrawImage img1,mx,my : DrawImage img2,bx,by

 Flip
Wend : End


Mfg

TheMatrix
°_° °.° °~° °v° .. -.-
 

Mr Hopp

BeitragMi, Nov 15, 2006 15:54
Antworten mit Zitat
Benutzer-Profile anzeigen
mhh.....nicht so wirklich Confused Sorry, aber ich kann das schlecht erklären Laughing Also: gehn wa mal von einem Rechteck (100*25) aus. Nun hat das Rechteck Midhandle. Wie kann ich jetzt einen Punkt oben rechts am Image malen? (Normal ja einfach x=x+50; y=y-12.5). Die schwierigkeit besteht ja in der Drehung... ich hoffe ihr habt das Problem verstanden. Danke schonmal
Zitat:
Wie poste ich falsch?

Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann.

StepTiger

BeitragMi, Nov 15, 2006 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
@Hopp

ehm, dein code ist fehlerhaft, weil:

entweder sin(wink#),cos(wink#), dann ist es rechtsdrehend, von oben anfangend
oder cos(wink#),sin(wink#), dann ist es linksdrehend und von rechts anfanged

aber nicht: sin(wink#),cos(wink#+180)
oder: cos(wink#),sin(wink#+180) oder sowas
wenn, dann muss der winkel bei beidem gleich groß sein!
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

Mr Hopp

BeitragMi, Nov 15, 2006 16:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Mir ist ein Licht aufgegangen! korrekter code:

Code: [AUSKLAPPEN]
Line x+Cos(winkel)*50+Cos(winkel-90)*13.5,y+Sin(winkel)*50+Sin(winkel-90)*13.5,300,136.5
Zitat:
Wie poste ich falsch?

Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group