Wie ein viereck eine Kurve fahren lassen?

Status
Nicht offen für weitere Antworten.

NatroN

Aktives Mitglied
Hallo!

In nem anderen Thread hab ich erwähnt, dass ich eine Autobahnauffaht simulieren muss.

Ein wichtiges Problem hierbei ist, dass ich das auto ja in einer Kurve fahren lassen muss.

Hier ein bild

http://www.grojer.at/natron/Schule/Auffahrt.jpg

dachte ich mach es mit den 4 punkten und einem polygon aber wie ermittle ich die 4 punkte am besten ständig?

mfg
 

AlArenal

Top Contributor
Verstehe nicht, warum die Position des Autos ermitteln willst. Ich denke es geht darum das Auto zu steuern, also setzt du doch die Position.
 

NatroN

Aktives Mitglied
das Auto ist nur ein Viereck das in der paint Methode gezeichnet wird. und ich brauch nur eine art formel o.ä. damit ich mir die jeweiligen Eckpunkte errechnen kann.


mfg
 

AlArenal

Top Contributor
Verstehe ich nicht. Vielleicht bin ich dumm.

Erstellst du nun das komplette Programm oder nicht?

Wenn ja:
Was hält dich davon ab ein Auto-Objekt zu haben, das selber weiß, wohin es sich gezeichnet hat (am besten zeichnet es sich selbst) und das du entsprechend abfragen kannst?

Wenn nein:
Wie war doch genau die Aufgabe? :D
 

NatroN

Aktives Mitglied
ja ich muss das gesamte programm erstellen.

Die aufgabe lautet (in etwa):
Ein Spiel ist zu programmieren. Bei diesem Spiel gibt es eine Autobahn, auf welcher Autos fahren (dargestellt durch vierecke)
Auf diese Autos hat der Spieler keinen Einfluss (sie kommen zufällig, aber immer mit der selben geschwindigkeit (wie auf der AB ja meist üblich)

Desweiteren gibt es ein Auto (dargestellt durch ein viereck) dass die AB Auffahr auffährt. Es hält die richtige spur von alleine. Der Spieler hat die Aufgabe die geschwindigkeit des auffahrenden Autos so zu beeinflussen (mittels slider aber das funkt schon) dass es keinen crash gibt.


Kurz: Ein viereck fährt eine kurve entlang. Die Geschwindigkeit des viereckes muss geregelt werden. Sonst nichts.
 

AlArenal

Top Contributor
Ok.. und jedes Auto ist eine Instanz einer Automobil-Klasse und kann sich selbst zeichnen und seine Position zurückliefern.

Wenn du doch alles selbst coden kannst / muss, verstehe ich das Problem noch weniger. Über einen Timer gesteurt bewegen sich die Wagen. Wenn ich das richtig verstehe, hast du das bereits umgesetzt. Die Laufbahn des Wagens ist fest vorgegeben (Hast du die schon implementiert?), die Steuerung hast du schon fertig.

Wieso musst du nun die Position des Wagens ermitteln? Wenn du das Teil an die richtige Stelle zeichnen kannst, wirste dir doch wohl auch merken lassen können, WO du es hingezeichnet hast, oder?

Die Kollisionsabfrage ist auch nicht weiter wild, weils ja alles Rechtecke sind...
 

NatroN

Aktives Mitglied
Naja, leider hab ich net soo viel Ahnung von der Sache..

Was man derzeit am Bildschirm sieht:
eine Straße (einfach in der PaintComponent gezeichnet)
ein Auto dass von links nach rechts fährt (daweil nur gerade)
einen Start/Stop ToggleButton
einen Slider, über den ich die Geschw. des Autos einstellen kann.

Was mir fehlt ich aber schaffen könnte:
Autos, welche sich nicht in der geschw. einstellen lassen, und zufällig kommen - also Abstand zw. autos verschieden .. von ca. 5 px bis 200px oder mehr)

Was mir fehlt und wo mir im Moment auch der Plan fehlt:
Die Laufbahn des verstellbaren Autos
Wie ich den Crash rausfinden kann.

Wenn du willst kann ich dir auch mal den Quellcode zukommen lassen...

echt super dass du mir helfen willst, obwohl ich mich so ungeschickt anstelle :)
 

Wildcard

Top Contributor
Ich würd auch eher dazu pledieren das du eine eigene Auto Klasse machst (steuerbares Auto erweitert Auto) die
sich selbst zeichnen kann.
Die Kollision kannst du einfach mit einem Rectangle Objekt prüfen, das sollte weiter kein problem sein...
 

Wildcard

Top Contributor
Du hast ein Panel. Auf dem Panel liegen Autos.
Autos haben mindestens eine getBounds(), eine draw() Methode und eine setLocation Methode.
Der drawMethode übergibst du das Graphics Object des Panels. Die Autos zeichnen dann sich selbst in ihren Bounds.
SteuerbaresAuto erweitert Auto um getSpeed() setSpeed() und intersects(Auto) (um einen Crash festzustellen).
kA wie bei dir die Fahrbahn gespeichert ist, und was das Auto dann genau machen soll, also sag ich dazu mal nichts.
Versuch mal wie weit du damit kommst, bei Problemen kannst du ja fragen... :wink:
 

NatroN

Aktives Mitglied
ok..

also eine class Datei Autos, sollte soweit noch kein Problem sein.

Der Rest aber schon ich verstehe gar nichts davon.....


Fahrban ist einfach nur:

screen.setColor(new Color(155,155,155));
screen.fillRect(0,150,800,60);
screen.fillArc(400,150,600,540,90,90);
screen.setColor(new Color(255,255,255));
screen.fillArc(460,210,540,480,90,90);
screen.setColor(new Color(0,0,0));

sonst nix!
 

Wildcard

Top Contributor
NatroN hat gesagt.:
Fahrban ist einfach nur:

screen.setColor(new Color(155,155,155));
screen.fillRect(0,150,800,60);
screen.fillArc(400,150,600,540,90,90);
screen.setColor(new Color(255,255,255));
screen.fillArc(460,210,540,480,90,90);
screen.setColor(new Color(0,0,0));

sonst nix!
Das musst du schon irgendwie abstrahieren und in eine Datenmodel packen(allein schon wegen flexibilität usw.), sonst kommst du glaub ich nicht weit
 

NatroN

Aktives Mitglied
öhm.. wie gesagt.. bin anfänger und weiß schon wieder nicht was du damit meinst :)

wie ich das in ein datenmodell packen soll usw.
 

Wildcard

Top Contributor
Überleg dir eine sinnvolle form wie du diese Daten festhalten willst.
Schließlich könntest du ja mal auf die Idee kommen eine andere Strecke zu machen, oder sogar einen
Leveleditor. Wenn du eine form gefunden hast kannst du dir überlegen wie sich das auto verhalten soll.
 

NatroN

Aktives Mitglied
lol!

Nein soweit will ich mich nicht aus dem Fenster lehnen! Es bleibt immer Gleich (ca. wie aufn Bild auf der ersten Seite) . Hätte ja auch net viel sinn, weil man ja eh nur den Speed verändern kann. Also ist ja egal ob es eine Kurve mehr oder weniger ist.

Es geht Nur darum, beim Auffahren keinen Kontakt mir einem andern auto zu haben.
 

Wildcard

Top Contributor
Die Kollision mit anderen Autos ist nicht schwierig.
Das problem ist eher wie das Auto die Strecke fahren soll. Kennt es die Strecke und fähr eine perfekte Kurve,
oder versucht es nicht anzustoßen, oder...
 

NatroN

Aktives Mitglied
es fährt einfach nur die Kurve.. wie auf schienen..

verhindern kann es nur der benutzer durch die einstellung der richtigen geschw.

mfg
 

Wildcard

Top Contributor
Wenn es auf der Kurve fährt muss es doch aber die Kurve kennen, also sind das Informationen die du ihm
irgendwie bereitsellen musst. Mit dem was du zeichnest kann das Auto nämlich nichts anfangen...
 

NatroN

Aktives Mitglied
und genau damit sind wir bei der grundfrage :)

Bin mit jeder Lösung einverstanden, auch wenn ich die Kurve irgendwie anders darstellen oder speicher muss..

Solang du mir sagst was genau ich machen muss :)

Aber eine kleine beifügung hab ich noch. Straßen sind breiter als autos.. Straße sollte also etwas breiter sein als die Autos
 

Wildcard

Top Contributor
Ich würd vorschlagen das du dir eine Methode machst die zum Programmstart ein Point[] erstellt.
Die Methode errechnet alle Werte ganzzahligen Werte die auf einer 'imaginären' Schiene in der Strassenmitte liegen.
Dem Auto übergibst du diese Werte und läufst sie der Reihe nach durch. Geht bestimmt auch einfach, ist aber schon
spät und mir fällt gerade nichts besseres ein :D
 

NatroN

Aktives Mitglied
jo, ein Ponit Array ist klar, aber wie soll ich da die Punkte ermitteln.

Habe ja keine Kurvengleichung o.ä. mit dem ich das ermitteln kann.

Außerdem brauche ich ja eigentlich 2 Kurven oder? Eine auf der die linken Punkte liegen und eine auf der die rechten Punkte liegen... weil sich das Auto ja auch je nach Straßenstellung anders neigen muss.

Mfg
NatroN
 
G

Gast

Gast
Hi!
@wildcard...
das mit der imaginären strasse, find ich eine gute idee, nur denk ich, dass sich das auto(reckteck) ebenfalls mitdrehen sollte bzw. die kurve fahren soll.

@natron...
du denkst dir einen imaginären bewegungspfad beispielsweise in der mitte der fahrbahn. dann rechnest du auf das zu zeichnende rechteck zurück. bei jedem takt deines timers rechnest du neu (repaint() o.ä)

dass es dann so richtig fein wird, muss dein rechteck dieselbe steigung, wie deine kurve haben.

mir fällt hier lediglich die variante des differenzierens ein, um die steigung einer funktion in einem punkt zu berechnen. als funktion nimmst du die imaginäre kurve (halbe parabel o.ä)

wenns noch fragen gibt... bitte melden *g*

mfg
 

NatroN

Aktives Mitglied
richtig! Mit der steigung kann ich arbeiten!

Also jetzt eine Kurvengleichung finden die gut aussieht, und dann daran die Fahrbahn anpassen...
 
G

Gast

Gast
das wär jetzt mal eine idee...

ich würd sagen, du nimmst irgendeine quadratische gleichung, wirst eh sicher was zum simulieren haben...

mfg
 

NatroN

Aktives Mitglied
hab das gleich mal zu papier gebracht.

Am einfachsten wär es mit einem Kreis! Einfach ein vierteil eines Kreises, nur weiß ich die Kurvengleichung eines Kreises nicht :)
 

NatroN

Aktives Mitglied
ok

r^2=^2+y^2

Kennt wer vielleicht ein Applet dass mir die Koordinaten anzeigt? Dann brauch i net immer so viel überlegen ;). ... also nur was wo ein Mouselistener die Koordinaten des Klicks oder der Mausposition anzeigt...

hatte sowas mal aber hab i nimma..
 

AlArenal

Top Contributor
Wieso überlegen? Du musst den Kram im Programm berechnen lassen. Wie willst du bei variabler Geschwindigkeit deines Vehikels sonst die korrekte Position setzen?
 

NatroN

Aktives Mitglied
schon klar das das berechnet wird, aber dazu brauch ich ja dir kurvengleichung.

in diese werden dann die X-Werte (die vom Zähler kommen) eingesetzt und man bekommt die y - Werte

dann hat man nen Punkt.

Dann wird die Steigung in diesem Punkt ausgerechnet und das Auto dargestellt.

Mal schaun ob das was wird :)

Nur um die Kurvengleichung und auch die Straße einfach darstellen zu können hätt ich gern so ein Applet, damit ich die Koordinaten ziemlich genau bstimmen kann um dann mit diesen die Kurvengleichung ausrechhnen zu können
 
G

Guest

Gast
Es geht ja nicht darum, dass du ein Applet hast was dir die Punkte vorgibt aus denen du DANACH den Pfad berechnest, sondern DAS du den Pfad berechnest. Wenn du um es dir besser vorstellen zu können, das ganze sichtbar machen willst, muss du doch nur ein Programm schreiben, dass die Punkte berechnet und entsprechend darstellt. Dass es zu dem Problem irgendwo hier eine fertige Lösung gibt, erscheint mir eher unwahrscheinlich.
 

NatroN

Aktives Mitglied
Hallo!

Ich hab nun mit Hilfe des Forums und einiger netten leute über IRC schon einiges geschafft.

Jetzt habe ich noch das Problem, dass ich will, dass die Kurve nur vom letzten Punkt der einen gerade bis zum ersten Punkt der 2ten Gerade läuft, aber nicht im Kreis.

Außerdem sollte der Punkt auf der Kurve nicht merkbar schneller oder langsamer unterwegs sein.

also passt anfangspunkt net, endpunkt net und der Speed net.

Hier kann man sich das Applet mal anschaun

http://mitglied.lycos.de/natron2e/Java/Test.html

und der Code ist hier zu finden:

http://mitglied.lycos.de/natron2e/Java/



Wär echt super wenn ihr mir helfen könntet... mir fällt echt net ein wie i das am besten lösen könnte.

mfg
 
R

Roar

Gast
öh java.lang.NoClassDefFoundError: JStraßen
kommt beim applet ausführen
 

NatroN

Aktives Mitglied
wer den code laden will und bei sich ausführen, muss natürlich sowohl jstraßen als auch verkehr.java laden, in den gleichen ordner spielen und verkehr.java ausführen.

das applet auf webspace funktioniert (zumindest bei mir) ohne probleme
 

NatroN

Aktives Mitglied
liegt wohl an der version.

geschrieben und funken tuts mit 1.3 und 1.4.2

mit 1.5 anscheinend nimma? :(

Woran kann das liegen? hmm..
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Bewegendes Viereck ruckelt Allgemeine Java-Themen 3
N Von der Steigung zum Viereck Allgemeine Java-Themen 6
Zrebna Aus einer jar-Datei eine exe-Datei erzeugen lassen Allgemeine Java-Themen 37
KonradN Mal eine Frage zu Binary Serialization Allgemeine Java-Themen 15
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
dokan wie kann ich eine funktionierende Suchleiste erstellen Allgemeine Java-Themen 1
B Wie erstelle ich dazu eine Abfrage ob der Button gedrückt wurde? Allgemeine Java-Themen 8
J Integration pay Pale in eine JavaFx Desktop Application Allgemeine Java-Themen 1
berserkerdq2 Wenn ich einfach eine GIF in den Scenebuilder als Bild reinpacke, wird das dann asl Gif angezeigt Allgemeine Java-Themen 1
8u3631984 Strukturiertes Logging : Jedes Feld in eine seperate Zeile - aber wie ? Allgemeine Java-Themen 2
berserkerdq2 Gibt es eine saubere Dokumentation von Jfoenix? Allgemeine Java-Themen 1
M Eigene Datenstruktur um eine Menge zu speichern Allgemeine Java-Themen 3
A Wie schreibe ich eine For-Schleife in ein Stream API um? Allgemeine Java-Themen 12
E Es ist nicht möglich, eine Batch-Anweisung auszuführen. Allgemeine Java-Themen 9
T Eine Frage des Designs Allgemeine Java-Themen 2
R Best Practice Erfahrungswerte für eine Migration von JSF nach Angular (oder anderes JS-Framework) Allgemeine Java-Themen 1
H Eine Linie verkürzen Allgemeine Java-Themen 5
N rekursion mehrfach eine Methode Öffnen Allgemeine Java-Themen 4
berserkerdq2 Wenn ich eine Methode nur jede 50ms ausführen will, wie mach ich das? Allgemeine Java-Themen 4
berserkerdq2 Wie synchronisiere ich eine for-Schleife Allgemeine Java-Themen 12
berserkerdq2 Wie mache ich in IJVM eine if verzweigung? Allgemeine Java-Themen 27
F Gibt es mittlerweile eine Alternative zu DaisyDiff Allgemeine Java-Themen 2
_user_q Was brauche ich, um eine eigene "Search for updates"-Funktion einzubauen? Allgemeine Java-Themen 1
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
LimDul Kam eine java.net.URL zu einer HashMap und ging als DNS Anfrage wieder heraus Allgemeine Java-Themen 18
pizza_dox_9999 Wie füge ich eine "eigene" ScriptEngine dem ScriptEngineManager? Allgemeine Java-Themen 3
F Kennt ihr eine Library um 2 HTML Seiten zu diffen? Allgemeine Java-Themen 8
Y ImagePanel von anderer Klasse in eine MainFrame Klasse hinzufügen. Allgemeine Java-Themen 1
OnDemand Anzeigen was eine Applikation macht Allgemeine Java-Themen 1
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
J Eine Frage zu den Threads und Task Allgemeine Java-Themen 1
Tobero Wie bekomme ich in welchem Quadrat sich eine Position in einem Grid befindet Allgemeine Java-Themen 11
Tobero Wie kann man eine Poisson Disc Sampler? Allgemeine Java-Themen 7
M Openjdk - gibt es auch eine Openjre? Allgemeine Java-Themen 7
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
S Noch eine Design-Frage zu Setter Allgemeine Java-Themen 6
N Arrayliste in eine Datei speichern Allgemeine Java-Themen 4
J Öffnen eine jar-Datei Allgemeine Java-Themen 11
Zrebna Gibt es eine Möglichkeit eine NPE zu vermeiden, wenn null returned wird? Allgemeine Java-Themen 3
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
R Wo müsste ich im Code eine Änderung vornehmen? Allgemeine Java-Themen 6
S Rückgabe einer HttpURLConnection für eine Seite einlesen bei der man eingeloggt ist..? Allgemeine Java-Themen 5
S Gibt es eine Moeglichkeit die Runtime Ausführung zu analysieren..? Allgemeine Java-Themen 7
S Habt ihr eine Idee wie man Serializierung testen kann..? Allgemeine Java-Themen 6
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
Drachenbauer warum bekomme ich hier eine NullPointerException Allgemeine Java-Themen 6
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
N Eine stelle der Fibonacci-Zahlenfolge ausgeben. Allgemeine Java-Themen 4
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
W Collections Suche etwas Sorted-List-Artiges...hat jemand eine Idee? Allgemeine Java-Themen 13
L Methoden Über Reflections eine Methode mit aufrufen Allgemeine Java-Themen 3
S Kann ich eine Methode schreiben die alle Arten von funktionalen Interfaces akzeptiert..? Allgemeine Java-Themen 21
Drachenbauer Wie kann eine vorgegebene Farbe über einen String erkannt werden? Allgemeine Java-Themen 11
J Datenstruktur für eine Map erstellen Allgemeine Java-Themen 2
sascha-sphw Java 9 module Zugriff auf eine resource einer anderen JAR Allgemeine Java-Themen 0
pkm Kann eine ServerSocket-Klasse nicht stateful sein? Allgemeine Java-Themen 4
B Aufruf der Methode ergibt eine Exception Allgemeine Java-Themen 13
I Eine Anwendung so gut wie möglich beschützen Allgemeine Java-Themen 9
M Wie kann man eine void Methode mit Variablen von zwei verschiedenen Objekten ausführen? Allgemeine Java-Themen 15
X Wie mache ich hier eine Rekursion rein ? Allgemeine Java-Themen 7
K OOP Suche Hilfe + Erklärung für eine Hausaufgabe Allgemeine Java-Themen 1
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
M Login in eine Webseite mit Java Allgemeine Java-Themen 3
A NetBeans Suche Programmierer für eine Belegarbeit Allgemeine Java-Themen 11
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
L Übergabe an eine eher einfache Java- Applikation wegen Kündigung Allgemeine Java-Themen 1
C Ein Iterator ist eine Implementierung des Interface Iterable? Allgemeine Java-Themen 2
M Schlüsselworte Was ist eine Java Spezifikation + JSR? Allgemeine Java-Themen 11
E RMI NULL-Pointer-Exeception wenn der RMI-Proxy eine Methode deligiert Allgemeine Java-Themen 2
E RMI FWH: RMI- Wie erstelle ich stubs dynamisch, bzw. unterdrücke eine Statisch-Warnung? Allgemeine Java-Themen 0
J Eine bestimmte Zahl im Integer ändern Allgemeine Java-Themen 9
Q-bert Strings aus der JList in eine Datenbank speichern Allgemeine Java-Themen 1
D Möglichkeit mit GAE eine Table auszulesen und eine csv zu schreiben Allgemeine Java-Themen 22
S Korrekte Pfadangaben damit eine .jar Datei unter Windwos läuft. Allgemeine Java-Themen 24
D Eine Forschleife mit Threads abarbeiten um es zu schneller zu machen. Ist das möglich? Allgemeine Java-Themen 20
S Wie kann ich eine kleine Stelle in meinem Code mit multiplen Threads abarbeiten..? Allgemeine Java-Themen 20
B Gibt es eine Funktion die den Datentyp einer Variablen ermittelt? Allgemeine Java-Themen 8
R bei eclipse von java in eine andere programmiersprache wechseln? Allgemeine Java-Themen 2
D Pivot-Wahl beim QuickSort steigert die Effizienz, eine Lüge??? Allgemeine Java-Themen 17
C Eclipse einstellen, dass eine bestimmte JDK benutzt werden soll Allgemeine Java-Themen 3
M Klassen Eine Klasse in mehreren Klassen einbinden Allgemeine Java-Themen 11
A Best Practice Java - eine Art Plugin-Struktur Allgemeine Java-Themen 3
S wie rufe ich mit .jar datei eine .bat auf? Allgemeine Java-Themen 15
R Signatur von Methoden in eine Datei schreiben? Allgemeine Java-Themen 4
perlenfischer1984 Functionsparameter prüfen und eine Exception werfen !? Allgemeine Java-Themen 11
J Mehrere Wörter getrennt in eine Array einlesen, wie ? Allgemeine Java-Themen 7
E Methoden Hat jemand eine gute Lösung? Allgemeine Java-Themen 5
Z NullPointerException beim Schreiben einer ArrayList in eine Datei Allgemeine Java-Themen 6
Exdroid BlueJ Wie bekomme ich die Ausgabe in eine TXT Datei? Allgemeine Java-Themen 2
G Methoden Aus einem Event, wo ich weiß, dass es ausgeführt werden wird, eine Get-Methode basteln Allgemeine Java-Themen 8
F Wie kann ich auf einem System prüfen, ob eine lib verfügbar ist? Allgemeine Java-Themen 2
Tausendsassa Interface Eine Gui von einer anderen schließen lassen Allgemeine Java-Themen 3
S Threads Kann mir jemand helfen eine parallele Hilfsklasse zu implementieren..? Allgemeine Java-Themen 3
S Best Practice Brauche eine Idee für eine Java Projekt! Allgemeine Java-Themen 11
P Zwei ArrayLists: Ohne die eine überhaupt anzurühren, wird sie verändert Allgemeine Java-Themen 2
M Eine Datei im Speicher erneut laden(?) Allgemeine Java-Themen 1
V Gibt es eine Möglichkeit die Internet auslastung mit Java auszulesen Allgemeine Java-Themen 11
L Drop Emails von Outlook in eine JList Allgemeine Java-Themen 5
P Wie funktioniert das Feedback eines Klicks auf eine Java GUI Allgemeine Java-Themen 10

Ähnliche Java Themen

Neue Themen


Oben