-
Notifications
You must be signed in to change notification settings - Fork 0
/
Recta.java
147 lines (106 loc) · 3.17 KB
/
Recta.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package Figuras;
public class Recta extends Punto {
//Atributos
private double px; // esto seria el punto inicial
private double py; // esto seria el punto final
//Constructor de un objeto Recta
public Recta(Punto p){
setX(0.0); //punto x inicial
setY(0.0); //punto y inicial
px = 0.0; //Punto x final
py = 0.0; //Punto y final
} // nunca devuelven nada
//Contructor a partir de parametros
public Recta(double px, double py, double xi , double yi) {
this.px = px;
this.py = py;
xi = getX() ;
yi = getY() ;
}
//COMPORTAMIENTO
//La línea tiene el comportamiento siguiente:
//***************++++++++++++++******************
//Método de acceso de la coordenada x
public double getPx(Punto p) {
return px;
}
//Método de acceso de la coordenada del punto y
public double getPy(Punto p) {
return py;
}
//Método modificador del atributo coordenada de x
//@param x * Nuevo valor para coordenada x
public void setPx(double px) {
this.px = px;
}
//Método modificador del atributo coordenada de y
//@param y * Nuevo valor para y
public void setPy(double py) {
this.py = py;
}
//Método para calcular la pendiente de la recta
public double pendiente(Punto p, double M, Recta r) { //LLamamos al objeto Punto
//M = (y1 - y2) / (x2 - x1)
/*
setX(0.0); //punto x inicial
setY(0.0); //punto y inicial
px = 0.0; //Punto x final
py = 0.0; //Punto y final
//M = (p.getY() - py) / (px - p.getX());
*/
M = (p.getY() - py ) / (px - p.getX() );
return M;
}
//Método para calcular la ordenada de la recta
public double ordenada(Punto p, double y, double m, double b) {
//y = m* this.x + b;
return y = m * p.getX() + b;
}
//Método para verificar si la recta esta contenida
public boolean contiene (Punto p, Object o) {
return false;
}
//Método para saber si es perpendicular
public boolean esPerpendicular(Recta r1, Recta r) {
//Si el producto de las pendientes es -1, entonces es perpendicular
if(r1 instanceof Recta ) {
Recta r2 = (Recta)r2;
return r1 * r2 == -1;
}
return false;
}
// M = (y1 - y2) / (x2 - x1) otra forma es
//recta original = M1 = -x/y
//recta perpecdicular M2 = -1/m1
//Método para saber si la recta tiene intersección
//interseccion(Recta):Punto
@SuppressWarnings("unused")
public boolean Intersección(Recta r, Punto p, Object o) {
//Punto interseccion (Recta o)
if( r instanceof Recta)
double X = this.getX();
return o;
}
//Método para saber si
/*
* Método que determina si una recta y otro objeto son iguales
* @param r - Objeto para el cual comparar
* @return boolean - true si las rectas son iguales ; false en otro caso
*/
@SuppressWarnings("unused")
@Override
public boolean equals(Object o) {
if (o instanceof Recta) {
Recta r = (Recta)o;
return this.px == px && this.py == py;
}
return false;
}
/*
*Representación en formato cadena de una recta
*@return
*/
public String toString() {
return "("+ this.px + ", " + this.py + ")";
}
}