Cómo encontrar los puntos marcados en una imagen ( P0', P1', P2 ', P3' )
Los puntos son conocidos:
P0, P1, P2, P3l1 y l2 Punto = Vector3(x,y,z)
EDITAR:
Inicialmente estoy tratando de establecer el punto P0'
var l1 = 1.2f; var l2 = 0.7f; var v30n = (P3 + P0).normalized; var v10n = (P1 + P0).normalized; var pl1 = P0 + v30n * l1; var pl2 = P0 - v10n * l2; var P0prim = pl1 + pl2;Cuidado con las indicaciones:
var l1 = 1.2f; var l2 = 0.7f; var v30n = (P0 - P3).normalized; //corrected here var v10n = (P0 - P1).normalized; //corrected here var pl1 = v30n * l1; var pl2 = v10n * l2; // corrected here var P0prim = P0 + pl1 + pl2; No depuró eso, pero la dirección es: (final point - starting point).normlized
Lo que dice @rustyBucketBay es la respuesta correcta (¡fue más rápido que yo!), pero en caso de que sepas que las proporciones de l1 y l2 son iguales , también puedes hacer lo siguiente:
Sabemos que si sumas todas las X y divides por 4 (el número de esquinas) y haces lo mismo con las Y, tendrás el centro del cuadrado.
Así que si sumamos l1+l2 a todos los puntos del cuadrado, y hacemos lo mismo, tendremos el cuadrado esperado pero desplazado. Ahora queremos reubicar el centro de la nueva gran plaza.
Para conseguirlo solo tenemos que calcular el centro del nuevo cuadrado grande (de nuevo, dividir por 4 X e Y) y calcular el vector entre los dos centros del cuadrado, el pequeño y el grande.
Con este vector calculado, podemos simplemente sumarlo a los nuevos puntos cuadrados grandes, y se reubicará.