|
Du befindest dich im Forum: Lounge. Smalltalk mit Sinn ist hier nicht nur erlaubt, sondern auch erwünscht. Hier können sich die User über ihre momentanen Befindlichkeiten austauschen und über Dinge des alltäglichen Lebens diskutieren. Smalltalk in seiner feinsten Form - aber trotzdem mit Sinn! |
|
Themen-Optionen |
29.10.2017, 19:59 | #1 |
Sporty
Registriert seit: 01/2008
Beiträge: 8.345
|
Die LT Informatiker
Hallo!
Da ich immer wieder von Informatikern hier im LT höre - der Thread. Zum Austausch und Smalltalk etc. Auch interessierte Nicht-Informatiker sind gerne willkommen. MfG Sporty |
29.10.2017, 19:59 | #00 |
Administrator
|
Hallo Sportismylife, in jeder Antwort auf deinen Beitrag findest du eine Funktion zum Melden bei Verstössen gegen die Forumsregeln.
|
30.10.2017, 07:35 | #2 | ||
Junior Member
Registriert seit: 11/2016
Beiträge: 14
|
Worüber willst du dich denn austauschen?
|
||
30.10.2017, 12:33 | #3 | ||
Sporty
Themenstarter
Registriert seit: 01/2008
Beiträge: 8.345
|
Ich habe da nicht an etwas spezielles gedacht. Dieser Thread soll einfach für alles was Informatik angeht da sein.
Aber wenn du schon so fragst... Weißt du zufällig wie ich eine Circle & Circle Kollision realisiere?
|
||
30.10.2017, 13:14 | #4 | ||
Sporty
Themenstarter
Registriert seit: 01/2008
Beiträge: 8.345
|
So Spiele programmieren ist ganz schön arbeit.
|
||
30.10.2017, 13:21 | #5 | ||
Junior Member
Registriert seit: 11/2016
Beiträge: 14
|
Hab das mal auf die schnelle mit Pythagoras gelöst:
// Kreis 1 an Position x1/y1 mit Radius=r1 double x1 = 2; double y1 = 2; double r1 = 1; boolean kollision = false; // Annäherung Kreis 2 in 0.1er Schritten: for (double i = 10; !kollision; i-=0.1 ) { // Kreis 2 an Position x2/y2 mit Radius=r2 double x2 = i; double y2 = i; int r2 = 2; // c = r1 + r2 + GAP // Punkt F (xf/yf) double xf = x2; // = 6 double yf = y1; // = 2 double a = xf - x1; double b = y2 - yf; System.out.println("a: " + a); System.out.println("b: " + b); // Laut Pythagoras: c^2 = a^2 * b^2 // WENN GAP <= 0 => Kollision double cq = a * a + b * b; double c = Math.sqrt(cq); double GAP = c - r1 - r2; if (GAP <= 0) { kollision = true; System.out.println("\n=> KOLLISION!!!"); } else { System.out.println("\n=> KEINE KOLLISION!"); } }
|
||
30.10.2017, 13:22 | #6 | ||
Sporty
Themenstarter
Registriert seit: 01/2008
Beiträge: 8.345
|
Vorallem die Details.
Ich muss bald Explosionen realisieren.. mach ich da jetzt ne eigene Klasse oder implementier ich das in jeden Gegner
|
||
30.10.2017, 13:23 | #7 | ||
Sporty
Themenstarter
Registriert seit: 01/2008
Beiträge: 8.345
|
Wow danke dir vielen Dank! Jetzt kanns ja weiter gehen
|
||
30.10.2017, 13:24 | #8 | ||
Junior Member
Registriert seit: 11/2016
Beiträge: 14
|
Hier noch meine Skizze: https://i.imgur.com/pg7x72W.jpg
|
||
30.10.2017, 13:29 | #9 | ||
Sporty
Themenstarter
Registriert seit: 01/2008
Beiträge: 8.345
|
Danke dir gleich erstmal alles gespeichert.
|
||
30.10.2017, 13:35 | #10 | ||
Junior Member
Registriert seit: 11/2016
Beiträge: 14
|
Geht natürlich viel einfacher, du kannst einfach die Strecke zwischen den Mittelpunkten der Kreise berechnen (Vektor) und der muss größer als die Summe der beiden Radien sein:
// Kreis 1 an Position x1/y1 mit Radius=r1 double x1 = 2; double y1 = 2; double r1 = 1; boolean kollision = false; for (double i = 10; !kollision; i-=0.1 ) { // Kreis 2 an Position x2/y2 mit Radius=r2 double x2 = i; double y2 = i; int r2 = 2; double difference = Math.sqrt ((y1 - y2) * (y1 - y2) + (x1 - x2) * (x1 - x2)); double GAP = difference - r1 - r2; if (GAP <= 0) { kollision = true; System.out.println("\n=> KOLLISION!!!"); } else { System.out.println("\n=> KEINE KOLLISION!"); } }
|
||