Fluchtpunkt setzen
Übersicht

Mr HoppBetreff: Fluchtpunkt setzen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
Wir haben in Kunst gerade mit Fluchtpunkten angefangen. Das berühmteste Beispiel ist dann ja wohl: Fluchtpunkt in der Mitte, Straße vom Vordergrund zum Fluchtpunkt, Häuser zur rechten, bäume zur linken. Hier schon mal ein erster Schritt (Ja, das soll eine Straße mit Horizont sein) Code: [AUSKLAPPEN] Graphics 800, 600, 32, 1
SetBuffer BackBuffer() Repeat Cls x = MouseX() y = MouseY() Line x-5, y-5, x+5, y+5 Line x-5, y+5, x+5, y-5 Line 0, y, 800, y Line 100, 600, x, y Line 700, 600, x, y Line 400, 600, x, y Flip Until KeyHit(1) End Wie kann ich jetzt Linien auf den Fluchtpunkt zu zeichnen, allerdings nicht bis zu ihm hin, ine gestrichelte Linie statt durchgezogen zum Beispiel? Wie lauten die Formeln(bestimmt cos, sin, oder?) Mfg Mr Hopp |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh Gott ^^
Wenn ichs richtig sehe, willst du ne art 3D-Redner-Engine bauen. Zu deiner Frage: ATan2 ist dein Freund! |
||
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also, vielen Dank schonmal, für die Hilfe, ABER ich habe ein weiteres Problem:
Code: [AUSKLAPPEN] Graphics 800,600,32,1
SetBuffer BackBuffer() Function zeichne(x, y, entf, laenge) x1# = MouseX() y1# = MouseY() winkel = (450-ATan2(MouseX()-x, MouseY()-y)) Mod 360 ;Line x+Cos(winkel)*entf, y+Sin(winkel)*entf, x+Cos(winkel)*(entf+laenge), y+Sin(winkel)*(entf+laenge) Line x+Cos(winkel)*(entf/(y1#/300)), y+Sin(winkel)*(entf/(y1/300)), x+Cos(winkel)*((entf+laenge)/(y1/300)), y+Sin(winkel)*((entf+laenge)/(y1/300)) End Function Repeat Cls x = MouseX() y = MouseY() Line 0, y, 800, y; Horizont Line 100, 600, x, y;Straßenrandlinie Line 700, 600, x, y; -||- zeichne(400, 600, 10, 50);Markierungsstreifen zeichne(400, 600, 100, 50) ;Kreuz setzen Color 255, 0, 0 Line x-5, y-5, x+5, y+5 Line x-5, y+5, x+5, y-5 Color 255, 255, 255 Flip Until KeyHit(1) End Funktion zeichne: Paramenter: Bezugspunkt_x, Bezugspunkt_y, Entfernung vom Bezugspunkt, Länge der Linie Diese Funktin zeichnet eine Linie in einem festgelegten Abstand von einem Bezugspunkt für eine bestimmte Länge zum Fluchtpunkt hin. Jetz das Problem: Wird der Fluchtpunkt verschoben, müssen die Striche kürzer, bzw. länger werden, die Formel haut allerdings noch nich so wirklich hin. Im Komentar schonmal ein (nicht funktionierender) Ansatz. |
||
$tankY |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab mir den code net angeschaut, aber du müsstest wissen, wie der abstand sein soll, den ziehste dann vom abstand zwischen den beiden ab und teilst das ergebnis durch zewi, oder sonst die anzahl der striche, glaub ich ma | ||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach doch eine 3D-Funktion die dir eine 3D-Koordinate in 2D umrechnet. Dann hast du das Problem mit über-Überschneidung der Lininen nicht. | ||
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie soll das denn gehen? Und $tankY, wie soll ich dann z.B. eine Linie eines Hauses erstellen, von der kein Element den Fluchtpunkt berrührt? Vll hättest du dir doch besser den Code ansehen sollen. | ||
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
ich hab dir schnell mal etwas gebastelt. Du kannst beliebig viele Linien erstellen, sie sind alle mit der Schablone lin (Type). Jetzt gehen die Linien nicht mehr bis zum Fluchtpunkt, sondern du kannst die Länge in Prozent einstellen: 0 -> keine Linie 100 -> Linie bis zum Fluchtpunkt 50 -> Linie nur halbe Länge usw. Wo die Linie anfängt, bestimmt nicht nur die Koordinate, sondern auch die Prozentpunkte..... man ist das kompliziert zu erklären, ich hoffe du verstehst es auch so ![]() naja, hier mal der code: BlitzBasic: [AUSKLAPPEN] Graphics 800,600,32,2 |
||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok, vielen Dank, ich werd's mir mal anschauen | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group