-
- Wstęp
- Klasa pkt3d
- Rzut równoległy
- Rzut perpektywiczny
- Jak rysować bryły
- Widoczność ściany
- Oświetlenie wielościanu
- Wykres funkcji z=f(x,y)
-
|
package liceum28;
public class pkt3d
{
public double x,y,z;
public pkt3d(double wx,double wy,double wz)
{
this.x=wx;this.y=wy;this.z=wz;
}
//----------------------------------------------
public void war(double nx,double ny, double nz)
{
x=nx; y=ny; z=nz;
}
//----------------------------------------------
public double dl()
{
return(Math.sqrt(x*x+y*y+z*z));
}
//----------------------------------------------
public void ob_x( int kat )
{double fi=(double)kat*Math.PI/180;
double yo=y;
y = -z * Math.sin(fi) + yo * Math.cos(fi);
z = z * Math.cos(fi) + yo * Math.sin(fi);
}
//----------------------------------------------
public void ob_y( int kat )
{ double fi=(double)kat*Math.PI/180;
double xo = x;
x = xo * Math.cos(fi) + z * Math.sin(fi);
z = -xo * Math.sin(fi) + z * Math.cos(fi);
}
//----------------------------------------------
public void ob_z( int kat )
{ double fi=(double)kat*Math.PI/180;
double xo = x;
x = xo * Math.cos(fi)-y * Math.sin(fi);
y = y * Math.cos(fi)+xo * Math.sin(fi);
}
}
|
Klasa pkt3d i dzidziczone metody z klasy lo28 rozwiązują problem adresowania rzeczywistego w R3.
W klasie znajduje się metoda tworząca (np pkt3d w=new pkt3d(2,3,-4)),
zmieniająca wartość (np w.war(-4,-1,7)).
Przydatna jest również funkcja dl, obliczająca długość wektora [x,y,z]
W zależności od realizowanych zadań można tworzyć inne metody, w moim przykładzie są to metody przeliczające współrzędne punktu po obrocie dookoła, odpowiednio osi OX, OY i OZ o dany kąt (tu w stopniach typu int).
|