hab ne Frage ..... ist auch ein mathematisches Problem aslo nicht nur in der Programmierung
ich habe eine Ameise die soll auf dem Feld laufen...... ich hab sie so weit dass:
- sie nach rechts und links läuft oder auch rechts oder links hoch, wenn ich die koordinaten ganz eingebe
- ich sie in jede Richtung drehen kann (also Blickwinkel)
jetzt soll meine Ameise aber in die Richtung laufen in die sie gedreht ist. sprich schaut sie nach rechts oben dann soll sie auch rechts oben laufen........durch rumprobieren der werte für X und für Y und der Drehrichtung klappt das auch ...aber ich soll es so programmieren, dass ich einen beliebigen winkel eingebe und meine ameise auch dahin läuft.
Es gibt auch andere Klassen die untereinander verknüpft sind die simulation wir in der Klasse Ameisensimulation ausgelöst......
was ich bisher hab: (Alles muss im Bogenmaß sein)
Code:
private double x = 400;
private double y = 400;
private double drehung = 4;
private String grafik = "";
private String beschriftung = "";
....
public void handle(AmeisenSimulation simulation) {
this.setX(this.getX()- 2); // hier läuft sie nach rechts
}
public void bewegeInGedrehteRichtung(AmeisenSimulation simulation){
this.setX(this.getX()- Math.cos(double X)); //funktioniert aber so nicht
this.setY(this.getY() - Math.sin(double Y));
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
public void setDrehung(double drehung) {
this.drehung = drehung;
}
danke im voraus.......ich kann nemmer *Kopf voll Mathe hab*
Die x-Koordinata kannst du aus dem sinus und die y-Koordinate aus dem cosinus des Winkels ableiten. Dabei musst du aber eine Fallunterscheidung treffen, und zwar für x ob Winkel größer 180 und für y ob Winkel kleiner 90 oder größer 270. Das Egebniss adierst bzw. subtrahierst du dann von deiner aktuellen Position.
Ja, ich gestehe, ich habe keine Ahnung wie viele Beine eine Ameise wirklich und es war mir z blöd danach zu googlen.
wow danke
die ameise sieht echt gelungen aus
den mathematischen teil hab ich jetzt gepeilt *wunder* wie das dann im Programmcode aussieht werd ich mal austesten...
ok ich hab meine Ameise jetzt immerhin so weit, dass sie in Abhänigkeit der Drehrichtung läuft....also wenn ich verschiedene Richtungen ausprobiere kommen auch andere Richtungen in die sie sich bewegt ...nur die Nase zeigt immer no net nach vorn...... ich habs zwar auspobiert aber da spielt immer 90 grad ne rolle
mein code sieht jetzt so aus
setX(getX) und setY(getY) steht für meine aktuelle Position:
Wenn ich bdich richtig verstehe, funktioniert die Beewegung, aber nict die Drehung deines Bildes, richtig?
Wenn du dein Bild in eine neue Position drehen möchtest, musst dabei den alten Winkel berücksichtigen.
1. Die trigonometrischen Methoden verlangen als Argumente Winkel im Bogenmaß
2. Das Ergebnis von Math.sin(...) liefert eine reele Zahl; weshalb addierst du da dann 180° drauf?
ich sag doch ...bin ne Matheniete...ok hab die Winkel auf Bogenmaß umgestellt. war der Meinung, dass ich die so stehen lassen könnte... nach dem ich das gemacht hatta, freute ich mich erst mal riesig, bis ich gemerkt hatte dass die Ameise verkehrt herum läuft............so ne kleine ameise und so viel Aufwand.
@Drake hab deinen Tipp ausprobiert klappt aber auch net