Java-Quellcode für Torusberechnung
Geschrieben von Gabi am 15. August 2003 12:30:26:
Als Antwort auf: Gleichung am Torus geschrieben von Gabi am 14. August 2003 23:37:37:
//----------------------------------------------------------
// Torus:void drawTorus ()
{
int i,j,u001,v001,u01,v01;
double winkelphi,uuu,vvv,www,u000,v000,w000,paramv,Lq,L,Lges,LA;
double windungen,swphi,swph,swtheta,swthet,winkeltheta,radiusklein,radiusgross;
double start1dX=0,start2dX=0,start1dY=0,start2dY=0,start1dZ=0,start2dZ=0,abBetrag,KreuzWinkel;
String Stext;double z6=1000000;
radiusgross=vR;
radiusklein=vr;
LA=0;
if (cbA.getState())
{
// erste Spulenwicklungwindungen=wA;
swphi=2*Math.PI/windungen;
swtheta=2*Math.PI/kreisteile;
swph=swphi/kreisteile;
Lges=0;
g2.setColor(Color.black);
winkelphi=0; uuu=radiusgross+radiusklein; vvv=0; www=0;for (i=1; i <= windungen; i++)
{winkeltheta=0;
for (j=1; j <= kreisteile; j++)
{
winkeltheta +=swtheta;
winkelphi +=swph;paramv=radiusgross+radiusklein*Math.cos(winkeltheta);
u000=uuu; v000=vvv; w000=www;uuu = paramv*Math.cos(winkelphi);
vvv = paramv*Math.sin(winkelphi);
www = radiusklein*Math.sin(winkeltheta);if(i==1 && j==1) { start1dX=uuu-u000; start1dY=vvv-v000; start1dZ=www-w000; }
u001 = screenU(u000,v000); v001 = screenV(u000,v000,w000);
u01 = screenU(uuu,vvv); v01 = screenV(uuu,vvv,www);if ( j > (int)(kreisteile/2) ) g2.setColor(Color.magenta);
if ( j < (int)(kreisteile/2) ) g2.setColor(Color.black);g2.drawLine(u001,v001,u01,v01);
Lq=(uuu-u000)*(uuu-u000) + (vvv-v000)*(vvv-v000) + (www-w000)*(www-w000);
L=Math.sqrt(Lq);
Lges +=L;
}}
g2.setColor(Color.black);
Lq=Math.round(Lges*z6)/z6;
LA=Lges;
Stext = "LängeA= " + Double.toString(Lq) + " ";
g2.drawString(Stext,5,15);};// Ende if (cbA.getState())
if (cbB.getState())
{
// inverse Spulenwicklung
windungen=wB;
swphi=2*Math.PI/kreisteile;
swtheta=2*Math.PI/windungen;
swthet=swtheta/kreisteile;
Lges=0;winkeltheta=0; uuu=radiusgross+radiusklein; vvv=0; www=0; Lges=0;
g2.setColor(Color.red);
for (i=1; i <= windungen; i++)
{
if ( i > (int)(windungen/2) ) g2.setColor(Color.blue);
if ( i < (int)(windungen/2) ) g2.setColor(Color.red);winkelphi=0;
for (j=1; j <= kreisteile; j++)
{
winkeltheta -=swthet;
winkelphi +=swphi;paramv=radiusgross+radiusklein*Math.cos(winkeltheta);
u000=uuu; v000=vvv; w000=www;uuu = paramv*Math.cos(winkelphi);
vvv = paramv*Math.sin(winkelphi);
www = radiusklein*Math.sin(winkeltheta);if(i==1 && j==1) { start2dX=uuu-u000; start2dY=vvv-v000; start2dZ=www-w000; }
u001 = screenU(u000,v000); v001 = screenV(u000,v000,w000);
u01 = screenU(uuu,vvv); v01 = screenV(uuu,vvv,www);
g2.drawLine(u001,v001,u01,v01);Lq=(uuu-u000)*(uuu-u000) + (vvv-v000)*(vvv-v000) + (www-w000)*(www-w000);
L=Math.sqrt(Lq);
Lges +=L;
}}
g2.setColor(Color.black);
Lq=Math.round(Lges*z6)/z6;
Stext = "LängeB= " + Double.toString(Lq) + " ";
g2.drawString(Stext,5,30);
if(LA > 0)
{
Lq=Math.round(LA/Lges*z6)/z6; Stext = "A/B= "+ Double.toString(Lq) + " ";
g2.drawString(Stext,5,45);
Lq=Math.round(Lges/LA*z6)/z6; Stext = "B/A= "+ Double.toString(Lq) + " ";
g2.drawString(Stext,5,60);
Stext = "Kreisteile= "+ Double.toString(kreisteile) + "";
g2.drawString(Stext,5,415);
abBetrag=Math.sqrt((start1dX*start1dX+start1dY*start1dY+start1dZ*start1dZ)*(start2dX*start2dX+start2dY*start2dY+start2dZ*start2dZ));
KreuzWinkel=Math.round(180/Math.PI*Math.acos((start1dX*start2dX+start1dY*start2dY+start1dZ*start2dZ)/abBetrag)*1000.0)/1000.0;
Stext = "Kreuz(R+r,0,0)= "+ Double.toString(KreuzWinkel) + " Grad";
g2.drawString(Stext,5,430);}
}; // Ende if (cbB.getState())
}
//----------------------------------------------------------
- Applet jetzt mit 8 Farben ! Gabi 19.8.2003 01:02 (11)
- Dynamische Toren Gabi 19.8.2003 22:52 (10)
- Re: Dynamische Toren Gabi 21.8.2003 07:28 (9)
- Erster Torkado Gabi 22.8.2003 17:03 (8)
- Elektronenschalen mit Kern Gabi 24.8.2003 01:58 (7)
- Re: Elektronenschalen mit Kern Hallole Gabi 25.8.2003 16:53 (6)
- Neue Applets Gabi 05.9.2003 23:51 (4)
- Re: Neue Applets Gabi 06.9.2003 08:07 (3)
- Magnet -Torkado als Applet Gabi 06.9.2003 12:21 (2)
- Re: Magnet -Torkado als Applet Dirk 06.9.2003 14:00 (0)
- Re: Magnet -Torkado als Applet Dirk 06.9.2003 13:48 (0)