Documente Academic
Documente Profesional
Documente Cultură
java Page 1 of 6
import java.awt.*;
import java.awt.event.*;
/*-----------------------------------------------------------*/
class hipocicloide extends Frame
{
public static void main(String[] args){
new hipocicloide();
}
hipocicloide ()
{
super("Hipocicloide ");
addWindowListener
(
new WindowAdapter()
{
public void windowClosing (WindowEvent e)
{
System.exit(0);
}
}
);
setSize(1366,768);
add("Center",new Cvpoint());
setVisible(true);//show();
/*----------------------------------------------------------*/
class Cvpoint extends Canvas
{
int ymax, xmax;
int wChar = 8; //ancho caracter
int hChar = 8; //alto caracter
int incMarcas = 100; //incremento de marcas en ejes x y
int heightMark = 5; // altura de marcas de ejes
int ix (float x)
{
return Math.round(x);
}
int iy (float y)
{
return Math.round(y);
}
void ejes(Graphics g)
{
int xc = xmax/2; //punto medio del ancho
File: /home/luis/Documents/hipocicloide.java Page 2 of 6
//eje x
for (int i = 0; i < xmax; i ++)
{
putPixel(g, i, yc);
}
//eje y
for (int i = 0; i < ymax; i ++)
{
putPixel(g, xc, i);
}
//marcas eje x positivo
int mark = 0;
for (int i = xc; i < xmax; i +=100)
{
lineaV(g, heightMark, i, yc - heightMark / 2);
label(g, "" + mark, i, yc + heightMark);
mark += 100;
}
//marcas eje x negativo
mark = 100;
for (int i = xc - 100; i > 0; i -=100)
{
lineaV(g, heightMark, i, yc - heightMark / 2);
label(g, "-" + mark, i, yc + heightMark);
mark += 100;
}
//marcas eje y positivo
mark = 100;
for (int i = yc - 100; i > 0; i -=100)
{
lineaH(g, heightMark, xc - heightMark / 2, i);
label(g, "" + mark, xc + heightMark, i - hChar / 2);
mark += 100;
}
//marcas eje y negativo
mark = 100;
for (int i = yc + 100; i < ymax; i +=100)
{
lineaH(g, heightMark, xc - heightMark / 2, i);
label(g, "-" + mark, xc + heightMark, i - hChar / 2);
mark += 100;
}
}
/*---------------linea vertical------------------------------*/
void lineaV(Graphics g, int largo, int x, int y)
{
for (int i = 0; i < largo; i ++)
{
putPixel(g, x, y + i);
}
}
/*---------------linea horizontal-------------------------*/
void lineaH(Graphics g, int largo, int x, int y)
{
for (int i = 0; i < largo; i ++)
{
File: /home/luis/Documents/hipocicloide.java Page 3 of 6
putPixel(g, x + i, y);
}
}
/*--------------pinta Caracter-----------------------*/
int asc8[] =
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E,
0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E,
0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E, 0x6C, 0xFE, 0xFE,
0xFE, 0x7C, 0x38, 0x10, 0x00,
0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x3C, 0x3C, 0x18,
0xFF, 0xE7, 0x18, 0x3C, 0x00,
0x10, 0x38, 0x7C, 0xFE, 0xEE, 0x10, 0x38, 0x00, 0x00, 0x00, 0x18,
0x3C, 0x3C, 0x18, 0x00, 0x00,
0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, 0x00, 0x3C, 0x66,
0x42, 0x42, 0x66, 0x3C, 0x00,
0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF, 0x0F, 0x07, 0x0F,
0x7D, 0xCC, 0xCC, 0xCC, 0x78,
0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, 0x08, 0x0C, 0x0A,
0x0A, 0x08, 0x78, 0xF0, 0x00,
0x18, 0x14, 0x1A, 0x16, 0x72, 0xE2, 0x0E, 0x1C, 0x10, 0x54, 0x38,
0xEE, 0x38, 0x54, 0x10, 0x00,
0x80, 0xE0, 0xF8, 0xFE, 0xF8, 0xE0, 0x80, 0x00, 0x02, 0x0E, 0x3E,
0xFE, 0x3E, 0x0E, 0x02, 0x00,
0x18, 0x3C, 0x5A, 0x18, 0x5A, 0x3C, 0x18, 0x00, 0x66, 0x66, 0x66,
0x66, 0x66, 0x00, 0x66, 0x00,
0x7F, 0xDB, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x00, 0x1C, 0x22, 0x38,
0x44, 0x44, 0x38, 0x88, 0x70,
0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x00, 0x18, 0x3C, 0x5A,
0x18, 0x5A, 0x3C, 0x18, 0x7E,
0x18, 0x3C, 0x5A, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18,
0x18, 0x5A, 0x3C, 0x18, 0x00,
0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x30, 0x60,
0xFE, 0x60, 0x30, 0x00, 0x00,
0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00, 0x00, 0x24, 0x42,
0xFF, 0x42, 0x24, 0x00, 0x00,
0x00, 0x10, 0x38, 0x7C, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xFE, 0xFE,
0x7C, 0x38, 0x10, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C,
0x18, 0x18, 0x00, 0x18, 0x00,
0x6C, 0x24, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x6C, 0xFE,
0x6C, 0xFE, 0x6C, 0x6C, 0x00,
0x10, 0x7C, 0xD0, 0x7C, 0x16, 0xFC, 0x10, 0x00, 0x00, 0x66, 0xAC,
0xD8, 0x36, 0x6A, 0xCC, 0x00,
0x38, 0x4C, 0x38, 0x78, 0xCE, 0xCC, 0x7A, 0x00, 0x30, 0x10, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00,
0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00, 0x60, 0x30, 0x18,
0x18, 0x18, 0x30, 0x60, 0x00,
0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00, 0x00, 0x30, 0x30,
0xFC, 0x30, 0x30, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x10, 0x20, 0x00, 0x00, 0x00,
0xFC, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x02, 0x06, 0x0C,
0x18, 0x30, 0x60, 0xC0, 0x00,
0x7C, 0xCE, 0xDE, 0xF6, 0xE6, 0xE6, 0x7C, 0x00, 0x18, 0x38, 0x78,
0x18, 0x18, 0x18, 0x7E, 0x00,
0x7C, 0xC6, 0x06, 0x1C, 0x70, 0xC6, 0xFE, 0x00, 0x7C, 0xC6, 0x06,
0x3C, 0x06, 0xC6, 0x7C, 0x00,
0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x1E, 0x00, 0xFE, 0xC0, 0xFC,
File: /home/luis/Documents/hipocicloide.java Page 4 of 6
0x10, 0x30, 0xFC, 0x30, 0x30, 0x34, 0x18, 0x00, 0x00, 0x00, 0xCC,
0xCC, 0xCC, 0xCC, 0x76, 0x00,
0x00, 0x00, 0xC6, 0xC6, 0x6C, 0x38, 0x10, 0x00, 0x00, 0x00, 0xC6,
0xD6, 0xD6, 0xFE, 0x6C, 0x00,
0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0xCC,
0xCC, 0xCC, 0x7C, 0x0C, 0xF8,
0x00, 0x00, 0xFC, 0x98, 0x30, 0x64, 0xFC, 0x00, 0x0E, 0x18, 0x18,
0x30, 0x18, 0x18, 0x0E, 0x00,
0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, 0xE0, 0x30, 0x30,
0x18, 0x30, 0x30, 0xE0, 0x00,
0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38,
0x6C, 0xC6, 0xC6, 0xFE, 0x00
};
vfontsize = 8; //size
ptr = n * vfontsize;
if (bit == -1)
putPixel(g,x+j,y+i);
}
ptr ++;
}//---fin drawChar
/*---------------PAINT--------------------------------------------------------
*/
public void paint (Graphics g)
{
Dimension d = getSize ();
float x, y;
float deg;
double theta, sintheta, costheta, costheta2, sintheta2;
int a = 250;
int b = 10;
File: /home/luis/Documents/hipocicloide.java Page 6 of 6
xmax = d.width - 1;
ymax = d.height - 1;
ejes(g);
//paramtrica Hipocicloide
g.setColor (Color.blue);
sintheta = Math.sin(theta);
sintheta2 = Math.sin( ( ( a - b ) / b ) * theta );
costheta = Math.cos(theta);
costheta2 = Math.cos( ( ( a - b ) / b ) * theta );
} // end paint
} // end Cvpoint