Hallo zusammen,
ich komme nicht auf die Lösung kann mir jemand vielleicht helfen
Dreidimensionale Körper können in einer geschlossenen Form angegeben werden.
Dies ist eine Funktion, die für einen Punkt angibt, ob er sich innerhalb oder außerhalb der Form befindet.
Beispiel: Für eine Kugel mit Radius r sieht die Funktion wie folgt aus.
f(x,y,z)=( true sqrt(x2 + y2 + z2)
false sonst )
Für r = 5 ergibt f(1, 1, 1) true (in der Kugel), f(5, 5, 5) ergibt false (außerhalb der Kugel).
Betrachten Sie nun das Programm Sample3D.java. Es enthält eine Methode isInsideBody, die eine geschlossene Form für einen Körper darstellt.
Ihre Aufgabe ist es, die Hauptmethode main zu schreiben, so dass das Volumen des Körpers approximiert wird. Dies sollte für jede Implementierung von isInsideBody funktionieren (also nicht nur für Kugel mit Radius 5, die sie in Sample3D.java finden).
Hinweise:
• Sie dürfen annehmen, dass sich die Körper in einer 3D-Box befindet, die von (-10, -10, -10) bis (10, 10, 10) reicht.
• Tipp: Werten Sie die Funktion an diskreten Punkten im 3D-Gitter aus und schließen sie damit auf das Volumen.
hier ist die isInsideBody Methode:
ich komme nicht auf die Lösung kann mir jemand vielleicht helfen
Dreidimensionale Körper können in einer geschlossenen Form angegeben werden.
Dies ist eine Funktion, die für einen Punkt angibt, ob er sich innerhalb oder außerhalb der Form befindet.
Beispiel: Für eine Kugel mit Radius r sieht die Funktion wie folgt aus.
f(x,y,z)=( true sqrt(x2 + y2 + z2)
false sonst )
Für r = 5 ergibt f(1, 1, 1) true (in der Kugel), f(5, 5, 5) ergibt false (außerhalb der Kugel).
Betrachten Sie nun das Programm Sample3D.java. Es enthält eine Methode isInsideBody, die eine geschlossene Form für einen Körper darstellt.
Ihre Aufgabe ist es, die Hauptmethode main zu schreiben, so dass das Volumen des Körpers approximiert wird. Dies sollte für jede Implementierung von isInsideBody funktionieren (also nicht nur für Kugel mit Radius 5, die sie in Sample3D.java finden).
Hinweise:
• Sie dürfen annehmen, dass sich die Körper in einer 3D-Box befindet, die von (-10, -10, -10) bis (10, 10, 10) reicht.
• Tipp: Werten Sie die Funktion an diskreten Punkten im 3D-Gitter aus und schließen sie damit auf das Volumen.
hier ist die isInsideBody Methode:
Java:
public class Sample3D {
/**
* Methods returns true if and only if given position is inside the body.
*
* @param x x position
* @param y y position
* @param z z position
*@Return true iff position is inside body
*/
public static boolean isInsideBody(double x, double y, double z) {
double distToCenter = Math.sqrt(x * x + y * y + z * z);
return distToCenter <= 5;
}
public static void main(String[] args) {
// Example
boolean isInside = isInsideBody(1, 2, 3);
// TODO: Compute volume
}
}
Zuletzt bearbeitet von einem Moderator: