04-01-2016, 12:08
Código PHP:
package p5;
public class Punto implements IForma {
private double x,y;
private int color;
public Punto(){
this.setX(0);
this.setY(0);
}
public Punto(double e, double i){
this.setX(e);
this.setY(i);
}
public void setX(double e){
this.x = e;
}
public void setY(double i){
this.y = i;
}
public Punto clonar(){
return new Punto(this.getX(),this.getY());
}
public String toString(){
return "P[" + getX()+", "+ getY()+"]";
}
@Override
public double getX() {
// TODO Auto-generated method stub
return this.x;
}
@Override
public double getY() {
// TODO Auto-generated method stub
return this.y;
}
@Override
public double getOrientacion() {
// TODO Auto-generated method stub
return 0;
}
@Override
public IForma girar(double grados, double x, double y) {
double angulo = Math.toRadians(grados);
double x1 = x+Math.cos(angulo)*(this.x-x)-Math.sin(angulo)*(this.y-y);
double y1 = y+Math.sin(angulo)*(this.x-x)+Math.cos(angulo)*(this.y-y);
return new Punto (x1, y1);
}
@Override
public IForma girar(double grados) {
// TODO Auto-generated method stub
return this.clonar();
}
@Override
public IForma trasladar(double deltaX, double deltaY) {
return new Punto (this.x+deltaX,this.y+deltaY);
}
@Override
public double distancia(double x, double y) {
// TODO Auto-generated method stub
return 0;
}
@Override
public IForma escalar(double k) {
// TODO Auto-generated method stub
return null;
}
@Override
public void setColor(int code) {
color = code;
}
@Override
public int getColor() {
return this.color;
}
}
Código PHP:
package p5;
public class TrianguloEquilatero implements IPoligonoRegular, IForma {
private Punto p1,p2,p3;
private double y;
private int color;
public TrianguloEquilatero() {
double y1 = 50*Math.tan(Math.toRadians(30));
p1 = new Punto (0,y1);
p2 = (Punto) p1.girar(120,0,0);
p3 = (Punto) p2.girar(120,0,0);
}
public TrianguloEquilatero(double lado){
double y1 = lado*Math.tan(Math.toRadians(30));
p1 = new Punto (0,y1);
p2 = (Punto) p1.girar(120,0,0);
p3 = (Punto) p2.girar(120,0,0);
}
public Punto[] getVertices() {
Punto vertices [] = {p1,p2,p3};
return vertices;
}
public double getLado() {
return p1.distancia(p2.getX(), p2.getY());
}
public void orientar(Vector v) {
double orientacion = v.getOrientacion()-getOrientacion();
girar(orientacion,getCentro());
}
public void girar(double grados, Punto cdg) {
p1 = (Punto) p1.girar(grados, cdg.getX(), cdg.getY());
p2 = (Punto) p2.girar(grados, cdg.getX(), cdg.getY());
p3 = (Punto) p3.girar(grados, cdg.getX(), cdg.getY());
}
public void trasladar(Vector v) {
p1 = (Punto) p1.trasladar(v.getCompX(), v.getCompY());
p2 = (Punto) p2.trasladar(v.getCompX(), v.getCompY());
p3 = (Punto) p3.trasladar(v.getCompX(), v.getCompY());
}
public Punto getCentro() {
double x = p1.getX()+p2.getX()+p3.getX();
double y = p1.getY()+p2.getY()+p3.getY();
return new Punto (x/3,y/3);
}
public Vector getUnitario() {
Vector a = new Vector (getCentro(),p1);
return new Vector (getCentro(),1,a.getOrientacion());
}
public double getArea() {
double h = getLado()*Math.sin(Math.PI/3);
return getLado()*h/2;
}
public double getPerimetro() {
return 3*getLado();
}
public void reset() {
Vector trasladar = new Vector (getCentro(),new Punto());
trasladar(trasladar);
}
public double getX() {
return getCentro().getX();
}
public double getY() {
return getCentro().getY();
}
public double getOrientacion() {
return getUnitario().getOrientacion();
}
public IForma girar(double grados, double x, double y) {
p1 = (Punto) p1.girar(grados,x,y);
p2 = (Punto) p2.girar(grados,x,y);
p3 = (Punto) p3.girar(grados,x,y);
return this;
}
public IForma girar(double grados) {
double x = getX();
double y = getY();
p1 = (Punto) p1.girar(grados,x,y);
p2 = (Punto) p2.girar(grados,x,y);
p3 = (Punto) p3.girar(grados,x,y);
return this;
}
public IForma trasladar(double deltaX, double deltaY) {
p1 = (Punto) p1.trasladar(deltaX, deltaY);
p2 = (Punto) p2.trasladar(deltaX, deltaY);
p3 = (Punto) p3.trasladar(deltaX, deltaY);
return this;
}
public double distancia(double x, double y) {
return getCentro().distancia(x, y);
}
public IForma escalar(double k) {
Punto centro = getCentro();
Vector a = (Vector) new Vector (centro,p1).escalar(k);
p1 = a.getExtremo();
p2 = (Punto) p1.girar(120,centro.getX(),centro.getY());
p3 = (Punto) p2.girar(120,centro.getX(),centro.getY());
return this;
}
public void setColor(int code) {
color = code;
}
public int getColor() {
return color;
}
public String toString (){
return "Triángulo --> C:P[" +getX()+ ", " +getY()+ "], L:" +getLado()+
", P[" + p1.getX() +", " +p1.getY()+ "], P[" +p2.getX()+ ", " +p2.getY()+
"], P[" +p3.getX()+ ", " +p3.getY()+ "], theta = "+getOrientacion();
}
}
Código PHP:
package p5;
public class Vector implements IForma {
private Punto o,e;
private double mod, ang;
private final static Punto defecto = new Punto(0,0);
private int color;
public Vector() {
o = new Punto(0,0);
e = new Punto(1,0);
//mod=1;
ang=0;
}
public Vector(double f, double i){
o = new Punto(0,0);
e = new Punto(f,i);
//mod=Math.sqrt((f*f)+(i*i));
ang=Math.toRadians(Math.atan(i/f));
}
public Vector(Punto a){
o = new Punto(0,0);
e = a.clonar();
//mod=Math.sqrt((a.getX()*a.getX())+(a.getY()*a.getY()));
ang=Math.toRadians(Math.atan(a.getY()/a.getX()));
}
public Vector(Punto a, Punto b){
o = a.clonar();
e = b.clonar();
//mod=Math.sqrt(Math.pow((b.getX()-a.getX()),2)+(Math.pow((b.getY()-a.getY()), 2)));
ang=Math.toRadians(Math.atan((b.getY()-a.getY())/(b.getX()-a.getX())));
}
public Vector(Punto a, double b, double c){
mod = b;
ang =Math.toRadians(c);
o = a.clonar();
e = new Punto((a.getX()+Math.cos(ang)*mod),a.getY()+(Math.sin(ang)*mod));
}
public Vector clonar(){
return new Vector(this.o,this.e);
}
public String toString(){
String h = ("Vector O: P["+o.getX() +","+o.getY()+"] E["+e.getX()+","+e.getY()+"] |v|="+mod+", ang = "+ang);
return h;
}
public double getCompX(){
return e.getX()-o.getX();
}
public double getCompY(){
return e.getY()-o.getY();
}
public Punto getPuntoAplicacion(){
return o;
}
public Punto getExtremo(){
return e;
}
public double modulo(){
return Math.sqrt(getCompX()*getCompX()+getCompY()*getCompY());
}
public Vector getUnitario(){
return new Vector(this.o,1,this.ang);
}
public static Vector getUnitario(double gr){
return new Vector(defecto,1,gr);
}
@Override
public double getX() {
return o.getX();
}
@Override
public double getY() {
return o.getY();
}
@Override
public double getOrientacion() {
return Math.toDegrees(Math.atan2(getCompY(),getCompX()));
}
@Override
public IForma girar(double grados, double x, double y) {
Punto o = (Punto) this.o.girar(grados,x,y);
Punto e = (Punto) this.e.girar(grados,x,y);
return new Vector (o,e);
}
@Override
public IForma girar(double grados) {
return new Vector(o,(Punto) e.girar(grados,o.getX(),o.getY()));
}
@Override
public IForma trasladar(double deltaX, double deltaY) {
return new Vector(new Punto (o.getX()+deltaX, o.getY()+deltaY),new Punto (e.getX()+deltaX, e.getY()+deltaY));
}
@Override
public double distancia(double x, double y) {
return o.distancia(x, y);
}
@Override
public IForma escalar(double k) {
return new Vector (o, modulo()*k,getOrientacion());
}
@Override
public void setColor(int code) {
color=code;
}
@Override
public int getColor() {
return color;
}
}
"Que yo sepa, el español medio no es más honrado que los políticos que lo gobiernan"