Hallo meine Lieben,
ich bin es mal wieder. Ich möchte nun beginnen meine zwei Programme in ein Fenster zu schreiben, und dann auch noch ein einziges daraus machen. Das erste Programm bezieht sich auf das Koordinatensystem (x,y) womit ich Geraden, und Parabeln anzeigen möchte, die Berechnungen mit der X-Achse sowie der Y-Achse und den dadurch enstehenden Dreiecken, Drachenvierecken und Trapezen funktioniert alles. Programm Nummer Zwei behandelt das die Trigonometrie, also 3 Dimensionale Körper welche ich ebenfalls 3D darstellen möchte. Und ich möchte anhand einer online Lösung die ich fand auch noch die Werte Interaktiv anzeigen.
Das Heisst ich brauche 2 Frames. Das Hauptframe welches die Werte / Ergebnisse anzeigt (das möglichst Interaktiv wie in der Online Lösung) und das zweite Fenster durch Button ein-/Ausblendbar danneben welches dann die Grafische Darstellung anzeigt möglichst wie in der Onlinelösung mit Beschriftung und realistischen längen je nach Einheit.
(ein weiteres Problem, ist es das ich bei einem Bruch von 1/3,obwohl er double ist, nicht 0,3333 raus bekomme sondern 0.0, habe daher variablen rechnen lassen. leider erzeugt meine whileschleife auch noch eine nullpointer exception -.-)
Onlinelösung (Pyramide(aber gutes beispiel)): https://www.matheretter.de/formeln/geometrie/pyramide/
Hoffe Ihr könnt mir ein bisschen auf die Sprünge helfen
und mein bisheriger Code (3d Körper):
ich bin es mal wieder. Ich möchte nun beginnen meine zwei Programme in ein Fenster zu schreiben, und dann auch noch ein einziges daraus machen. Das erste Programm bezieht sich auf das Koordinatensystem (x,y) womit ich Geraden, und Parabeln anzeigen möchte, die Berechnungen mit der X-Achse sowie der Y-Achse und den dadurch enstehenden Dreiecken, Drachenvierecken und Trapezen funktioniert alles. Programm Nummer Zwei behandelt das die Trigonometrie, also 3 Dimensionale Körper welche ich ebenfalls 3D darstellen möchte. Und ich möchte anhand einer online Lösung die ich fand auch noch die Werte Interaktiv anzeigen.
Das Heisst ich brauche 2 Frames. Das Hauptframe welches die Werte / Ergebnisse anzeigt (das möglichst Interaktiv wie in der Online Lösung) und das zweite Fenster durch Button ein-/Ausblendbar danneben welches dann die Grafische Darstellung anzeigt möglichst wie in der Onlinelösung mit Beschriftung und realistischen längen je nach Einheit.
(ein weiteres Problem, ist es das ich bei einem Bruch von 1/3,obwohl er double ist, nicht 0,3333 raus bekomme sondern 0.0, habe daher variablen rechnen lassen. leider erzeugt meine whileschleife auch noch eine nullpointer exception -.-)
Onlinelösung (Pyramide(aber gutes beispiel)): https://www.matheretter.de/formeln/geometrie/pyramide/
Hoffe Ihr könnt mir ein bisschen auf die Sprünge helfen
Java:
package trigonometrie;
import java.util.Scanner;
class ConsoleMenu
{
void ShowMenu()
{
System.out.println( 1 + " Kugel\n" + 2 + " Quader\n" + 3 + " Pyramide\n" + 4 + " Kugel\n" + 5 + " Prisma\n" );
}
ConsoleMenu()
{}
}
public class trigometric
{
public static void main( String[] args ) throws java.io.IOException
{
ConsoleMenu cs = new ConsoleMenu();
double pi = Math.PI;
double x1 = 1, y3 = 3, y6 = 6;
char ch;
do
{
cs.ShowMenu();
ch = (char) System.in.read();
switch( ch )
{
case '1':
{
System.out.println( "Cube" );
double a, v, Ao, bd, bh, Wdbh, Whbf, Abdh, Abdhf;
Scanner sc = new Scanner( System.in );
System.out.println( "a:" );
a = sc.nextDouble();
sc.close();
v = a * a * a;
Ao = 6 * ( a * a );
bd = a * ( Math.sqrt( 2 ) ); //quadratische diagnonale (2D)
bh = Math.sqrt( ( 3 * ( a * a ) ) ); //raumdiagonale
System.out.println( "V= " + v + " E³\nAo= " + Ao + " E²\nBD= " + bd + " E\nBH= " + bh + " E" );
Wdbh = Math.toDegrees( Math.atan( bh / bd ) );
Whbf = 180 - ( 90 + Wdbh );
Abdh = bd * a * 0.5;
Abdhf = bd * a;
System.out
.println( "Wdbh= " + Wdbh + "°\nWhbf= " + Whbf + "°\nAbdh= " + Abdh + " E²\nAbdhf= " + Abdhf + " E²" );
}
break;
case '2':
{
System.out.println( "Quader" );
double a, b, c, v, Ao, bd, bh, Wdbh, Whbf, Abdh, Abdhf;
Scanner sc = new Scanner( System.in );
System.out.println( "AB / a:" );
a = sc.nextDouble();
System.out.println( "BC / b:" );
b = sc.nextDouble();
System.out.println( "BF / c:" );
c = sc.nextDouble();
sc.close();
v = a * b * c;
c = v / ( a * b );
Ao = 2 * ( a * b + a * c + b * c );
bd = ( Math.sqrt( a * a + b * b ) ); //quadratische diagnonale (2D)
bh = Math.sqrt( a * a + b * b + c * c ); //raumdiagonale
System.out.println( "V= " + v + " E³\nAo= " + Ao + " E²\nBD= " + bd + " E\nBH= " + bh + " E" );
Wdbh = Math.toDegrees( Math.atan( c / bd ) );
Whbf = 180 - ( 90 + Wdbh );
Abdh = bd * c * 0.5;
Abdhf = bd * c;
System.out
.println( "Wdbh= " + Wdbh + "°\nWhbf= " + Whbf + "°\nAbdh= " + Abdh + " E²\nAbdhf= " + Abdhf + " E²" );
break;
}
case '3':
{
System.out.println( "Pyramide" );
double a, b, h, v, bd, ha, hb, bs, Aabs, Abcs, Ao, Wdbs, WMmbS, WMmbS2;
Scanner sc = new Scanner( System.in );
System.out.println( "AB / a:" );
a = sc.nextDouble();
System.out.println( "BC / b:" );
b = sc.nextDouble();
System.out.println( "Höhe h:" );
h = sc.nextDouble();
sc.close();
v = ( x1 / y3 ) * a * b * h;
bd = ( Math.sqrt( a * a + b * b ) ); //quadratische diagnonale (2D)
bs = ( Math.sqrt( ( ( 0.5 * bd ) * ( 0.5 * bd ) ) + ( h * h ) ) );
ha = ( Math.sqrt( ( ( 0.5 * a ) * ( 0.5 * a ) ) + ( h * h ) ) );
hb = ( Math.sqrt( ( ( 0.5 * b ) * ( 0.5 * b ) ) + ( h * h ) ) );
Aabs = 0.5 * a * ha;
Abcs = 0.5 * b * hb;
Ao = ( a * b ) + ( 2 * ( Aabs + Abcs ) );
Wdbs = Math.toDegrees( Math.atan( h / ( 0.5 * bd ) ) );
//Mb=Mittelpunkt b
WMmbS = Math.toDegrees( Math.atan( ( h / ( 0.5 * a ) ) ) );
WMmbS2 = Math.toDegrees( Math.atan( ( h / ( 0.5 * b ) ) ) );
System.out.println( "\nV= " + v + " E³\nAo= " + Ao + " E²\nBD= " + bd
+ " E\nBS= " + bs + " E" );
System.out.println( "\nHöhe ha:" + ha + " E\nHöhe hb:" + hb + " E" );
System.out.println( "\nAabs= " + Aabs + " E²\nAbcs= " + Abcs + " "
+ "E²\nWdbs= " + Wdbs + " °\nWMbmbS= " + WMmbS + " °\nWmbmbS2= " + WMmbS2 + " °" );
break;
}
case '4':
{
System.out.println( "Kugel" );
double u, Ao, v, d, r;
Scanner sc = new Scanner( System.in );
System.out.println( "r:" );
r = sc.nextDouble();
sc.close();
d = 2 * r;
u = pi * d;
Ao = pi * ( d * d );
v = ( ( x1 / y6 ) * pi ) * ( d * d * d );
System.out
.println( "\nd : " + d + " E" + "\nu : " + u + " E" + "\nAo: " + Ao + " E²" + "\nv : " + v + " E³" );
sc.close();
break;
}
/*
case '5':
{
System.out.println( "Prisma\nSeitenanzahl?:" );
int site;
double v, Ag, Am, Ao, h;
Scanner sc = new Scanner( System.in );
site = sc.nextInt();
if ( site > 3 )
{
System.out.println( "Fehler: Prisma muss min. 3 Seiten besitzen." );
site = sc.nextInt();
}
sc.close();
}
break;
*/
}
}
while ( ch != '0' ); //löst nullpointer exception aus
}
}