¿Cómo calcular puntos de un cuadrado?

¿Dado un centro, la longitud del lado y un ángulo como puedo hallar los puntos para formar un cuadrado?.

Es decir al pasar los ángulos desde 0 a 360 quisiera poder formar un cuadrado con los puntos siendo los ángulos 45, 135, 225, 315 los vértices.

1 respuesta

Respuesta

Necesitamos más datos para poder ayudarte... ¿qué elementos te dejan utilizar para formar el cuadrado? ¿Regla, compás, transportador? ¿O hay alguno que te "prohiben" usar?

Comenta un poco más y a partir de eso vemos

Es una función de ordenador, no puedo utilizar nada de eso. Debería ser una función matemática partiendo de los puntos centrales (x, y), el ancho del lado del cuadrado y el ángulo hacia donde apunta el vector. El resultado sería un punto (x, y).

Si  para el caso se tratase de un círculo:

x = r * cos(ángulo en radianes) + x_inicial;

y = r * sen(ángulo en radianes) + y_inicial;

Pero para el caso no me vale por los picos del triangulo, como podeis ver:

Saludos.

A ver si llego a interpretarte.

Voy a intentar hacer un dibujo para identificar los objetos...

Si te estoy interpretando bien, los datos que vos tenés son los del punto E y el valor del lado (L) y a partir de estos dos, querés calcular las coordenadas de A, B, C, D

Si es así, entonces no necesitamos mucha trigonometría, sino que tendríamos

$$\begin{align}&A_x= E_x - L/2\\&A_y = E_y - L/2\\&B_x= E_x + L/2\\&B_y = E_y - L/2\\&C_x= E_x + L/2\\&C_y = E_y + L/2\\&D_x= E_x - L/2\\&D_y = E_y + L/2\\&\end{align}$$

(supongo x positivo a la derecha, y positivo hacia arriba)

Si no es esto, comenta para entender mejor la pregunta.

No solo quiero averiguar los puntos de los vértices sino todos los puntos del cuadrado. Para ello tengo el valor del ángulo. En el caso que el valor del ángulo sea 45º me devolvería el vértice inferior derecho pero necesito saber también el punto correspondiente siendo 45,5º, 50º, etc...

Es decir:

x_inicial := 0;
y_inicial := 0;
l_lado := 20;
for i := 0 to 360 do
 dibujar_punto ( FUNCION_BUSCADA(x_inicial, y_inicial, i, l_lado) )

Debería dibujar un cuadrado de 20x20 con el punto 0,0 en el centro de este.

Saludos.

Lo que pasa es que me parece que eso ya depende del lenguaje de programación y no es tanto de matemáticas... porque los puntos serían

$$\begin{align}&(X, Y):\\&(x_0 - L/2 \le X \le x_0 + L/2 \land Y=y_0-L/2)\\&\lor\\&(x_0 - L/2 \le X \le x_0 + L/2 \land Y=y_0+L/2)\\&\lor\\&(X = x_0 - L/2 \land y_0 - L/2 \le Y\le y_0+L/2)\\&\lor\\&(X = x_0 + L/2 \land y_0 - L/2 \le Y\le y_0+L/2)\\&\\&\end{align}$$

Pero esa sería una definición matemática como te decía, en tu caso depende del lenguaje de programación que hayas elegido, ya que no todos son iguales.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas