import javax.swing.JOptionPane; // Permite introducir números
float x1 = 30;
float y1 = 80;
float px1 = 0;
float py1 = 0;
float x2 = 30;
float y2 = 80;
float px2 = 0;
float py2 = 0;
float x3 = 0;
float x4 = 0;
float y3 = 0;
float y4 = 0;
float px3 = 0;
float py3 = 0;
float px4 = 0;
float py4 = 0;
float a = 0.0;
float b = 0.0;
void setup() {
size(600,400);
x1 = pedirNumero("Dame la x del primer punto","Punto 1");
y1 = pedirNumero("Dame la y del primer punto","Punto 1");
x2 = pedirNumero("Dame la x del segundo punto","Punto 2");
y2 = pedirNumero("Dame la y del segundo punto","Punto 2");
x3 = -width/2;
x4 = width/2;
a = (y2-y1)/(x2-x1);
b = y1-a*x1;
y3 = a*x3+b;
y4 = a*x4+b;
println(str(x1)+","+str(y1));
println(str(x2)+","+str(y2));
println("A: "+str(a)+" - B:"+str(b));
}
void draw() {
background(254);
stroke(0);
line (0,height/2,width,height/2); // eje x
line (width/2,0,width/2,height); // eje Y
// Transformadas
px1 = width/2+x1;
py1 = height/2-y1;
px2 = width/2+x2;
py2 = height/2-y2;
for (int xx=-width/2; xx<=width/2; xx=xx+3) {
y3 = a*xx+b;
if ((y3>-height/2) && (y3<height/2)) {
px3 = width/2+xx;
py3 = height/2-y3;
noStroke();
fill(0,255,0);
ellipse(px3,py3,1,1);
}
}
// Segmento
stroke(0);
line(px1,py1,px2,py2);
// dibujar
dibujarCruz(px1,py1);
dibujarCruz(px2,py2);
}
// Input Box
float pedirNumero(String frase, String titulo) {
float i = 0;
String r = JOptionPane.showInputDialog(null,frase,titulo, JOptionPane.QUESTION_MESSAGE);
try {
i = Float.parseFloat(r);
} catch(NumberFormatException e) {
println("you did not enter a number!");
}
return i;
}
void dibujarCruz(float px, float py) {
stroke(0,0,255);
line (px-3,py-3,px+3,py+3);
line (px-3,py+3,px+3,py-3);
}
No hay comentarios:
Publicar un comentario