zufaelligen punkt auf einen pfad generieren
-
Hi,
ich habe ein 2d space (mit HEIGHT, WIDTH) in dem sich ein object bewegt. von dem objekt kenne ich start_x, start_y und die richtung in welche sich das object bewegt. das objekt bewegt sich auf einer linie...
wie kann ich einen zufaelligen punkt (x,y) generieren, welcher sich auf den pfad sich befindet? ziel ist es eine zuefaellige bewegungsaenderung des objektes durchzufuehren...
also sowas wie:
std::pair<int,int> generateRandPointOnPath(unsigned int start_x, unsigned int start_y, unsigned int heading_dir_degrees, unsigned int WIDTH, unsigned int HEIGHT) { }
LG Steffen
-
zufälliger punkt = startpunkt + zufallszahl * richtungsvektor
ziel ist es eine zuefaellige bewegungsaenderung des objektes durchzufuehren...
Häh? Erklär mal genauer. Ich kann diesen Satz nicht in Einklang mit deiner sonstigen Beschreibung bringen.
-
SeppJ schrieb:
zufälliger punkt = startpunkt + zufallszahl * richtungsvektor
ziel ist es eine zuefaellige bewegungsaenderung des objektes durchzufuehren...
Häh? Erklär mal genauer. Ich kann diesen Satz nicht in Einklang mit deiner sonstigen Beschreibung bringen.
ich will einen zufaelligen punkt auf den pfad generieren. wenn das object diesen punkt uberschreitet dann soll soll sich die bewegungsrichtung des objektes aendern.
beispiel:
unsinged int HEIGHT = 1024; unsinged int WIDTH = 768; unsigned int start_x = 100; unsigned int start_y = 100; unsigned int heading_dir = 45; // grad // da nehmen wir wohl ein std::pair... unsigned int rand_x, rand_y = generateRandPointOnPath(start_x, start_y, heading_dir, WIDTH, HEIGHT); // was passiert wenn curr_x and curr_y floats sind? if (curr_x == rand_x && curr_y == rand_y) { heading_dir = 90; }
-
verstehst du es nun? wie kann ich nun generateRandPointOnPath implementieren?
-
Meine erste Antwort war in dem Fall schon passend, daher habe ich nichts mehr hinzu gefügt.
-
@SeppJ: kannst du bitte erklaeren wie ich das auf meine funktion generateRandPointOnPath(start_x, start_y, heading_dir, WIDTH, HEIGHT) mappen kann?
-
Ich fühle mich nur gering motiviert, deine Programme für dich zu schreiben, wenn du dazu schon keinen Ansporn hast.
-
@SeppJ: hab schon was begonnen: http://ideone.com/IqLsCP ... damit kann ich den sehen wo das objekt das koordinaten system verlaesst und definiere mein end_x, end_y...
funktioniert im moment nur fuer einen winkel bis 90 grad.
wie kann ich den code vereinfachen?
-
Steigungen sind doof. Du willst schließlich Geometrie machen, keine Analysis. Ich habe nicht umsonst von Richtungsvektoren geredet.
-
SeppJ: hab nun den code umgebaut. was meinst du dazu? http://ideone.com/btgKmD
-
steffenn schrieb:
SeppJ: hab nun den code umgebaut. was meinst du dazu? http://ideone.com/btgKmD
Was hältst du von der Tatsache, dass er nicht das macht, was du willst?
Ich weiß nicht, was du hier willst. Du hast eine einfache, exakte Antwort bekommen, die auch funktionieren würde. Aber stattdessen willst du Feedback zu Implementierungen deiner eigenen Ideen, die nicht einmal im Ansatz richtig sind, und zu denen du dir nicht einmal 5 Sekunden Zeit genommen hast, diese selber zu testen.
-
@SeppJ: ich habe nun noch die change_heading_dir funktion hinzugefuegt...
http://ideone.com/btgKmDwarum?
-
@SeppJ:
ich habe noch mal genau ueberlegt und bin auf folgendes gekommen: http://ideone.com/CtXMy6 ... kannst du mir bitte nun ein feedback geben? ich muss alle cases noch implementieren und testcases hinzufuegen...