5 votos

¿Coordenadas del triángulo paralelo con una distancia "d" entre las aristas paralelas?

Tengo un triángulo con Coordenadas $\{(x_1,y_1),(x_2,y_2),(x_3,y_3)\}$ . Necesito encontrar las coordenadas de un triángulo, cuyas aristas son exactamente $\alpha$ distancia del triángulo anterior. A continuación se muestra la figura que ilustra este escenario.

enter image description here

SOLUCIÓN:

    public void enlargetriangle(Graphics g)
  {
    double ratiodistance=d; // distance between two triangles
    Point xy1; //Point p1
    Point xy2; //Point p2
    Point xy3; //Point p3
    double d1=Math.sqrt(Math.pow((xy2.x-xy3.x), 2)+Math.pow((xy2.y-xy3.y), 2));
    double d2=Math.sqrt(Math.pow((xy3.x-xy1.x), 2)+Math.pow((xy3.y-xy1.y), 2));
    double d3=Math.sqrt(Math.pow((xy1.x-xy2.x), 2)+Math.pow((xy1.y-xy2.y), 2));
    double incenter_X=((((d1*xy1.x)+(d2*xy2.x)+(d3*xy3.x))/(d1+d2+d3)));
    double incenter_Y=((((d1*xy1.y)+(d2*xy2.y)+(d3*xy3.y))/(d1+d2+d3)));
    Point incenter= new Point((int)((((d1*xy1.x)+(d2*xy2.x)+(d3*xy3.x))/(d1+d2+d3))),(int)(((d1*xy1.y)+(d2*xy2.y)+(d3*xy3.y))/(d1+d2+d3)));
    double inradius=Math.sqrt(((-d1+d2+d3)*(d1-d2+d3)*(d1+d2-d3))/(d1+d2+d3))/2;
    double ratio_distance=(inradius+ratiodistance)/inradius;
    Point xy1_2=new Point((int)(incenter_X+((ratio_distance)*(xy1.x-incenter_X))),(int)(incenter_Y+((ratio_distance)*(xy1.y-incenter_Y))));
    Point xy2_2=new Point((int)(incenter_X+((ratio_distance)*(xy2.x-incenter_X))),(int)(incenter_Y+((ratio_distance)*(xy2.y-incenter_Y))));
    Point xy3_2=new Point((int)(incenter_X+((ratio_distance)*(xy3.x-incenter_X))),(int)(incenter_Y+((ratio_distance)*(xy3.y-incenter_Y))));
  // xy1_1, xy1_2,xy1_3 are the required triangle co-ordinates 
  }

2voto

DonAntonio Puntos 104482

Sean los vértices del triángulo $\,A,B,C\,$ desde la superior y en sentido contrario a las agujas del reloj, y sus coordenadas se numeran respectivamente. He aquí algunas ideas:

1) Que $\,y=mx+n\,$ sea la ecuación del lado $\,AC\,$ , digamos: quieres una línea $\,y=mx+n'\,$ (nota ambos $\,m\,$ hasta ahora son lo mismo !). Tome cualquier punto de la nueva línea, por ejemplo $\,(x_1\,,\,mx_1+n')\,$ y determinar su distancia a la $\,AC\,$ para ser $\,\alpha$ \N - , es decir

$$\frac{|mx_1-(mx_1+n')+n|}{\sqrt{m^2+1}}=\alpha\iff |n-n'|=\alpha\sqrt{m^2+1} $$

Obsérvese que se obtienen dos posibles soluciones (dos líneas a ambos "lados" de $\,AC\,$ paralela a ella y a una distancia $\,\alpha\,$ de ella) . Debe elegir el del lado del vértice $\,B\,$ (por ejemplo, tomando la ecuación de la línea cuya distancia a $\,B\,$ es el más corto...)

2) Repite lo anterior con los tres lados y luego encuentra los puntos de intersección, que serán los vértices del nuevo triángulo.

...................................

a) Llama de nuevo a los vértices del triángulo exterior $\,A,B,C\,$ desde el superior y en sentido contrario a las agujas del reloj, y los vértices del respectivo triángulo interior $\,A',B',C'\,$ . Tenga en cuenta que $\,\Delta ABC\sim\Delta A'B'C'\,$ ¡...!

Continuar con el lado $\,A'B'\,$ "hacia abajo" hasta que se cruce con el lado $\,BC\,$ en el punto $\,P\,$ y extraer de $\,B'\,$ un segmento perpendicular hasta $\,BC\,$ con el punto de intersección $\,Q\,$ para obtener un pequeño triángulo rectángulo $\,\Delta B'PQ\,$ . Pasando a la notación vectorial, se puede obtener el ángulo $\,\theta\,$ entre los vectores

$$\vec v:=\vec{BA}:=(x_1-x_2,y_1-y_2)\;,\;\;\text{and}\;\;\vec u:=\vec{BC}:=(x_3-x_2,y_3-y_2)$$

por medio de su producto interno y norma (habitual, euclidiana) y luego la función arcocoseno:

$$\cos\theta:=\frac{\langle\,\vec v\,,\,\vec u\,\rangle}{||\vec v||\cdot||\vec u||}$$

y desde aquí se puede obtener la longitud del segmento $\,PQ\,$ :

$$\tan\theta:=\frac{\alpha}{PQ}\implies PQ=\frac{\alpha}{\tan\theta}$$

b) Bien, ahora puedes ir como sigue:

Tomemos el triángulo angular recto $\,\Delta BB'Q\,$ y nota que $\,BQ=BP+PQ\,$ y ya conoces estas dos longitudes, por lo que necesitas el punto de intersección entre la línea que pasa por $\,B\,$ y haciendo un ángulo igual a

$$\arctan\frac{\alpha}{BQ}$$

con $\,BC\,$ y a una distancia de

$$\sqrt{\alpha^2+BQ^2}$$

de $\,B\,$ (de nuevo, dos posibles puntos de este tipo, etc.) , y repetir con los tres vértices.

comparar perímetros

2voto

Brian Deacon Puntos 4185

Usaré " $d$ " como la distancia entre las aristas de los triángulos original y ampliado; necesito " $a$ " en un papel más estándar en otro lugar.

Dejemos que $I$ sea el incentro del triángulo original, y sea $r$ sea el inradio. Claramente, $I$ se encuentra a una distancia $r+d$ de cada lado del triángulo expandido, de modo que también es el incentro del triángulo expandido. Por lo tanto, para cualquier vértice $P$ del triángulo original, y su contraparte $P^\prime$ en el triángulo expandido, $\overleftrightarrow{IP}$ es la bisectriz de $\angle P$ y $\overleftrightarrow{IP^\prime}$ la bisectriz de $\angle P^\prime$ ; como los lados correspondientes de los triángulos son paralelos y "equidistantes", estas dos bisectrices deben coincidir. Tenemos, pues, que el triángulo expandido es un dilatación (o escala ) del triángulo original respecto al punto $I$ el factor de escala es $(r+d)/r$ .

Así, podemos expresar las coordenadas de $P^\prime$ en términos de los de $P$ y $I$ :

$$P^\prime = I + \frac{r+d}{r}(P-I) \qquad \qquad (*)$$

Con un vistazo a Entrada "Incenter" de MathWorld obtenemos las coordenadas de $I$ para ser

$$I = \left(\frac{a x_1 + b x_2 + c x_3}{a+b+c}, \frac{a y_1 + b y_2 + c y_3}{a+b+c} \right)$$

donde $a$ , $b$ , $c$ son las longitudes de las aristas opuestas a los vértices respectivos $(x_1,y_1)$ , $(x_2, y_2)$ , $(x_3, y_3)$ . El inradio viene dada por

$$r = \frac{1}{2}\sqrt{\frac{(-a+b+c)(a-b+c)(a+b-c)}{a+b+c}} = \frac{2\cdot\text{area of}\;\triangle}{a+b+c} $$

Dejaré como ejercicio para el lector escribir las expresiones para $I$ y $r$ completamente en términos de la $(x_i,y_i)$ y luego sustituirlos por $(*)$ .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X