Professor Kit Romano's Web Site

 



Site Index

About Me

Welcome
Definition of Program
Variable Types
Understanding Memory
Declaring Variables
Simple Commands
Concatenation and Strings
Sleep-Threads-Try Catch
Campus Scenes
Pictures
Java simplified
Application Shell Styles
Reading Data From File
Overview of Applets
Excellent Graphics Applet
Online Reference
Nested if statements
Arrays
Sorting Arrays
Using Strings
Functions
Top 20 Replies 
First program 211
Important Class Example
JAVA in SDK Environment
Understanding OOP
OOP simple example
Recursion example
Example of Inheritance
     and use of JTextArea



*** Web Related **********
Build Student Web Page ?
What is FTP
Download WS ftp95
Download Java Plug In
Applets from jbuilder to sdk
Practice Problems

 

Programming Examples

 

 

                                                

// SOLAR_SYSTEM APPLET   by Kenneth Woelkers     

import java.awt.*;
import javax.swing.*;
import java.math.*;

public class solar_system extends JApplet {

private int speed=2;
private int number_of_planets=99;
private int max_comets=10;
private int[] point =new int[2];
private int[] e=new int[2];
private int[] OC={1024/2,700/2}; 
private double PI=Math.PI;
private double[] a_ANGLE = new double[number_of_planets];
private double[] c_angle1=new double[max_comets];
private double[] c_angle2=new double[max_comets];
private double[][] m_angle=new double[10][10];
private boolean first;
private int[] spaceship_point={0,100};
private Image a;

public void paint(Graphics g) {
Dimension d = getSize();
checkOffscreenImage();
Graphics offG = a.getGraphics();
offG.setColor(getBackground());
offG.fillRect(0, 0, 500, 500);
paintOffscreen(a.getGraphics());
g.drawImage(a, 0, 0, null); 
try{Thread.sleep(100);}
catch(Exception e){} 
repaint();
}

public void mplanet(int n, int R, int PS,
Color c, boolean clockwise, Graphics g) 
{
circle(point,R, n);
g.setColor(c); 
g.fillOval(point[0]-(PS/2),point[1]-(PS/2),PS,PS);
g.drawOval(OC[0]-R,OC[1]-R,R*2,R*2);
if(clockwise) 
a_ANGLE[n] += 2*PI/(R/1);
else a_ANGLE[n] -= 2*PI/(R/1);
}

public void circle(int[] point, int radius, int n) 
{
point[0]=(int)(radius * Math.cos(a_ANGLE[n]))+OC[0];
point[1]=OC[1]-(int)(radius * Math.sin(a_ANGLE[n]));
}

public void moon(int planet, int orbit_radius,
int mn, int osize, int msize, boolean m_clockwise, Graphics g) 
{
double Q;
if(m_clockwise) 
Q=a_ANGLE[planet]-(2*PI/(orbit_radius/1));
else Q=a_ANGLE[planet]+(2*PI/(orbit_radius/1)); 
int x=(int)(orbit_radius*Math.cos( Q ))+OC[0];
int y=OC[1]-(int)(orbit_radius*Math.sin( Q ));
int x2=(int)(osize*Math.cos(m_angle[planet][mn]))+x;
int y2=y-(int)(osize*Math.sin(m_angle[planet][mn]));
g.setColor(Color.black); 
g.fillOval(x2-msize/2,y2-msize/2,msize,msize); //black circle
if(m_clockwise) 
m_angle[planet][mn]+=2*PI/(osize/1);
else m_angle[planet][mn]-=2*PI/(osize/1);
}
public void dcomet(int xcomet, int ycomet,
int radius, int radius2, 
int OA,
int c, Graphics g) 
{
int x1,y1,x2,y2; 
int x0=0, y0=0;
int[] x3=new int[100];
int[] y3=new int[100];
if(c_angle1[c]==0) 
c_angle1[c]=Math.toRadians(OA); 
for(int a=0;a<100;a++) 
{
x1=(int)(radius2 * Math.cos(c_angle2[c]));
y1=(int)(radius2 * Math.sin(c_angle2[c])); 
x3[a]=(int)(radius * Math.cos(c_angle1[c]))+xcomet+x1;
y3[a]=(int)(radius * Math.sin(c_angle1[c]))+ycomet+y1; 
c_angle1[c]-=2*PI/(radius);
c_angle2[c]+=2*PI/(radius);
if(c_angle1[c]<-2*PI) 
c_angle1[c]+=2*PI;
if(c_angle2[c]>2*PI) 
c_angle2[c]-=2*PI;
}//end a_for
g.drawPolygon(x3,y3,100);
dcometd( xcomet, ycomet, 100, 160, 0, g);
}//end m_dcomet

public void dcometd(int xcomet, int ycomet,
int radius, int radius2, 
int c, Graphics gg) 
{
int x1,y1,x2,y2;
x1=(int)(radius2 * Math.cos(c_angle2[c]));
y1=(int)(radius2 * Math.sin(c_angle2[c])); 
x2=(int)(radius * Math.cos(c_angle1[c]))+xcomet+x1;
y2=(int)(radius * Math.sin(c_angle1[c]))+ycomet+y1; 
c_angle1[c]-=2*PI/(radius);
c_angle2[c]+=2*PI/(radius);
if(c_angle1[c]<-2*PI) 
c_angle1[c]+=2*PI;
if(c_angle2[c]>2*PI) 
c_angle2[c]-=2*PI;
//draw comet head
gg.setColor(Color.BLACK);
gg.fillOval(x2-5,y2-5,10,10);

cTail(x2,y2,xcomet,gg);
}//end m_dcometd

private void cTail(int x, int y, int xcomet, Graphics gg)

int XD=x-OC[0]; //DISTANCE X FROM CENTER
int YD=y-OC[1]; //DISTANCE Y FROM CENTER
double H=Math.sqrt(XD*XD+YD*YD); //HYPOTINUSE
double AA=Math.acos(XD/H); //ANGLE
double AB=Math.asin(YD/H); //ANGLE
int XT=OC[0]+(int)(H*Math.cos(AA));
int YT=OC[1]+(int)(H*Math.sin(AB));
//tail draw
int tail_length=(int)(((OC[0]-xcomet)-H));
int length_tail=4;

for(int a=0;a<=tail_length;a++) 
{
int xt1=x+(int)(a * Math.cos(AA));
int yt1=y+(int)(a * Math.sin(AB)); 
gg.setColor(Color.BLACK);
gg.fillOval(xt1-(10-a/2)/2, yt1-(10-a/2)/2, 10-a/length_tail, 10-a/length_tail);
}
}
public void spaceShip(int x_speed, int y_speed, Color c, Graphics g)
{
int ship_size1=50;
int ship_size2=20;
g.setColor(c);
g.fillOval(spaceship_point[0],spaceship_point[1],ship_size1,ship_size2);

int px1,py1,px2,py2,px3,py3,px4,py4,px5,py5;

px1=spaceship_point[0]+20;
py1=spaceship_point[1]+2;
px2=spaceship_point[0]+10;
py2=spaceship_point[1]-10;
px3=spaceship_point[0]-20;
py3=spaceship_point[1]-14;
px4=spaceship_point[0]+12;
py4=spaceship_point[1]-15;
px5=spaceship_point[0]+30;
py5=spaceship_point[1]-18;
for(int a=0;a<10;a++)
g.drawLine(px1+a,py1,px2+a,py2);
g.fillRect(px3,py3,40,10);
g.setColor(Color.RED);
g.fillArc(px4,py4,10,10,-90,180);
g.setColor(Color.BLUE);
for(int a=0;a<10;a++)
g.drawLine(px1+a+10,py1,px2+a+30,py2);
g.fillOval(px5,py5,50,16);
spaceship_point[0]+=x_speed;
spaceship_point[1]+=y_speed;
g.setColor(Color.RED);
if(spaceship_point[0]%50==0)
g.drawLine(spaceship_point[0]+60,spaceship_point[1]-15,(int)((Math.random()*500))+1, (int)((Math.random()*500))+1); 
g.setColor(Color.BLUE);
if(spaceship_point[0]>1024 || spaceship_point[1]>768)
spaceship_point[0]=0;
spaceship_point[1]=100;
}

private void checkOffscreenImage() 
{
Dimension d = getSize();
if (a == null || a.getWidth(null) != d.width ||
a.getHeight(null) != d.height) 
{
a = createImage(d.width, d.height);
}
}
public void paintOffscreen(Graphics g) 
{
g.setColor(Color.white);
g.fillRect(0,0,1280,1024);

//planet number /planet orbit radius /planet size
//color /counterclockwise /g 
mplanet(0, 40, 10, Color.blue, false, g);
mplanet(1, 100, 30, Color.green, false, g);

mplanet(2, 150, 30, Color.BLUE, true, g);
mplanet(6, 150, 20, Color.WHITE, true, g);
mplanet(7, 150, 15, Color.magenta, true, g);

mplanet(3, 200, 20, Color.red, false, g);
mplanet(4, 0, 50, Color.yellow, false, g);
mplanet(5, 30, 8, Color.green, false, g);

//planet # /planet orbit radius 
//moon # /moon orbit radius 
//moon size 
//OC /g 
moon(1, 100, 0, 20, 8, false, g);
moon(3, 200, 0, 25, 10, false, g);
moon(3, 200, 1, 20, 6, false, g);

//orbit center x,y //r1 r2
//orbit angle
//comet ## //Graphics g
dcomet(305, 265, 100, 160, 45, 0, g);

spaceShip(10,10,Color.BLUE,g);
}//end m_paintoffscreen
}