8 votos

"Trivial" de la trigonometría problema

Estoy realmente atascado en este problema, y me imaginé que la gente probablemente podría ayudar a mí con él. Tengo un rectángulo con ancho w y altura h con un cierto punto p en su interior. Este punto está dado por los desplazamientos x e y de la topleft de la plaza. En una imagen:

enter image description here

Ahora, me gire este rectángulo el ángulo de una. Me dibujar el recuadro circundante a su alrededor. Quiero saber el nuevo (x, y) las coordenadas del punto p de la topleft de los alrededores de la caja (o, la longitud de las líneas de color púrpura).

enter image description here

Notas: esta no es la tarea, este es un problema de programación estoy atascado en. En las imágenes el ángulo < 90, este no es necesariamente el caso. Además, las longitudes de los alrededores de la caja ya se conocen, no tienen necesidad de ser calculado.

5voto

CodingBytes Puntos 102

Elija el punto de $p$ como origen de una $(x,y)$-sistema de coordenadas, el $x$-eje que apunta hacia la izquierda. Ahora girar el rectángulo alrededor de $p$ a la derecha en un ángulo de $\phi$. Lo que quiero saber es el $x$-coordenadas del vértice de la izquierda y el $y$-coordenadas del vértice superior como una función de la $\phi$.

Vamos $A=(x,y)$, $B=(x,h-y)$, $C=(w-x,h-y)$, $D=(w-x,y)$ las cuatro vértices en la posición de partida. A continuación, para $0<\phi<{\pi\over2}$ más a la izquierda del vértice es $B$ y el vértice superior es $A$. Para ${\pi\over2}<\phi<\pi$ más a la izquierda del vértice es $C$ y el vértice superior es $B$, y así sucesivamente.

Ahora el uso de las fórmulas para la rotación de puntos en un sistema de coordenadas, teniendo cuidado de que el elegido orientaciones de los ejes y ángulos. El procedimiento será más o menos mecánico.

3voto

Matt Puntos 11

Me estoy refiriendo a la imagen de abajo, donde el ángulo de rotación se denota por a $\alpha$.

enter image description here

Tenemos para el nuevo $x', y'$ si $0 \le \alpha \le 90$:: $$x' = BD = BC + CD = FE \cos(90-\alpha) + CD = (h - y) \cos(90-\alpha) + x \cos \alpha$$ $$y' = DK = DG + GK = DG + ML \cos (90 - \alpha) = y \cos \alpha + x \cos (90 - \alpha)$$

El uso de $\cos(90 - \alpha) = \sin \alpha$ tenemos $$x' = BD = (h - y) \sin \alpha + x \cos \alpha$$ $$y' = DK = y \cos \alpha + x \sin \alpha$$

AÑADIDO. Nos deja denotar este cálculo como $$(x', y') = F(x, y, h, \alpha), 0 \le \alpha \le 90$$ El significado y el orden de los parámetros es relevante.

Para otros ángulos de utilizar la imagen de abajo enter image description here

CORRECCIÓN: La leyenda de las figuras deben ser respectivamente: $\beta=\alpha-90,\beta=\alpha-180,\beta=\alpha-270$.

a deducir: $$(x', y') = F(h-y, x, w, \alpha-90), 90 \le \alpha \le 180$$ $$(x', y') = F(w-x, h-y, h, \alpha-180), 180 \le \alpha \le 270$$ $$(x', y') = F(y, w-x, w, \alpha-270), 270 \le \alpha \le 360$$

2voto

RandomJackal Puntos 1

Si no me equivoco, las fórmulas deben ser:

$x_{new}=(h-y)\cdot sin(A)+x\cdot cos(A)$

$y_{new}=x\cdot sin(A)+y\cdot cos(A)$

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