11 votos

Escalado y rotación de un cuadrado, de manera que se encuentra inscrita en el original de la plaza

Tengo un cuadrado con un lado de longitud de 100 cm. Luego quiero girar un cuadrado a la derecha en diez grados, de manera que es a escala y dentro de la existente en la plaza.

La imagen de abajo es lo que estoy intentando, pero con un cuadrado, no es un triángulo. (Imagen creada por Alain Matthes).

not my square

Y aquí está la plaza, estoy tratando de crear, así que espero que esta ayuda: my square

Así que mi pregunta, ¿cómo puedo determinar la distancia entre el punto inicial y el punto de girar? O, ¿cómo puedo determinar la ubicación del punto de girar sobre su propio, independiente de la original plaza? No estoy seguro de cuál sería la fórmula que me gustaría utilizar en cualquiera de los dos casos.

Cualquier ayuda en esta tarea, sería muy apreciado.

13voto

heropup Puntos 29437

Un enfoque más general se da como sigue. Supongamos que tenemos los puntos $$\zeta_{n,0}^k = \left( \cos \frac{2\pi k}{n}, \sin \frac{2\pi k}{n} \right), \quad k = 0, 1, 2, \ldots, n-1$$ forming a regular $n$-gon with unit circumradius in the Cartesian coordinate plane. We seek a linear transformation $T$ that maps $\zeta_{n,0}^k$ to a point $\zeta_{n,1}^k$ that satisfies the following properties: $$\begin{align*} \zeta_{n,1}^k &= T(\zeta_{n,0}^k) = (1-\lambda) \zeta_{n,0}^k + \lambda \zeta_{n,0}^{\overline{k+1}}, \\ T(0,0) &= (0,0), \end{align*}$$ for each such $k$, where $\overline{k+1}$ is the remainder of $k+1$ divided by $n$. Here, $\lambda \en (0,1)$ is a fixed constant. This suggests a rotation by some angle $\theta$ and scaling by $s$ will work: i.e., $$T(x,y) = \begin{bmatrix}s \cos \theta & -s \sin \theta \\ s \sin \theta & s \cos \theta \end{bmatrix}\begin{bmatrix} x \\ y \end{bmatrix}$$ or if we want to use complex numbers as suggested by our choice of $\zeta$, $$T(z) = se^{i\theta}\zeta_{n,0}^k = se^{i\theta}e^{2\pi i k/n} = se^{i(2\pi k/n + \theta)} = (1-\lambda)e^{2\pi i k/n} + \lambda e^{2\pi i (k+1)/n}.$$ Equivalently, $$se^{i\theta} = 1 + \lambda(\zeta_{n,0} - 1).$$ Solving for $s$ and $\theta$ in terms of $\lambda$, we obtain $$s = \sqrt{\Bigl(1 - \lambda + \lambda \cos \frac{2\pi}{n}\Bigr)^2 + \lambda^2 \sin^2 \frac{2\pi}{n}} = \sqrt{1 - 2\lambda + 2\lambda^2 + 2\lambda(1-\lambda) \cos \frac{2\pi}{n}},$$ $$\theta = \tan^{-1} \frac{\sin \frac{2\pi}{n}}{\frac{1}{\lambda} - 1 + \cos \frac{2\pi}{n}}.$$ The resulting rotation matrix then has the form $$T = \begin{bmatrix} 1 - \lambda + \lambda \cos \frac{2\pi}{n} & -\lambda \sin \frac{2\pi}{n} \\ \lambda \sin \frac{2\pi}{n} & 1 - \lambda + \lambda \cos \frac{2\pi}{n} \end{bmatrix}.$$ Subsequent iterations of $T$ will produce nested $n$-gons with vertices $$T^m(\zeta_{n,0}^k) = \zeta_{n,m}^k.$$

A continuación es bastante primitiva en la aplicación de los citados en Mathematica, para $n = 7$ y poco a poco incrementando $\lambda \in [0.05, 0.95]$:

enter image description here

7voto

turkeyhundt Puntos 5378

Digamos que el original de 4 puntos, pasando a la izquierda desde el origen, $$(0,0),(100,0),(100,100),(0,100)$$

enter image description here

Desea girar a la derecha, lo que significa que el punto que estaba en el origen va a subir a $(0,a)$ y el punto que se a $(0,100)$ va a ir a $(a,100)$. Y si se dibuja un vistazo a esta nueva situación con todos los 4 pequeños gajos de rellenar el espacio entre la plaza nueva y la vieja, usted puede hacer triángulos con un pequeño tramo de $a$ y de un largo de pierna de $b$ y ver que $a+b=100$.

Así que usted tiene un sistema de dos ecuaciones y dos incógnitas. $$a+b=100\\tan(10^{\circ})=\frac{a}{b}$$

Esto le da a $a\approx14.99$. Su nuevo 4 puntos $$(0,14.99),(85.01,0),(100,85.01),(14.99,100)$$

Además, a cada lado de longitud, fue escalado por $0.8632$

EDIT: ¿Cómo resolver el sistema sin una calculadora de resolver() función.

  1. Encontrar un valor numérico de $tan(10^{\circ})$. Es $0.1763$
  2. Resolver la primera ecuación en términos de $a$ $a=100-b$
  3. Solucionar $0.1763=(100-b)/b$ o $0.1763b=100-b\\1.1763b=100\\b=100/1.1763\\b=85.01$

3voto

David K Puntos 19172

Tiene dos respuestas correctas ya. Lo que me gustaría hacer es poner la solución en términos que usted pueda muy fácil de aplicar a su problema, que es, quiero dar una simple fórmula para calcular directamente las coordenadas de cada vértice de cada cuadrado.

Vamos a tomar polar de coordenadas con el origen en el centro de la plaza, por lo que la gran plaza en el diagrama tiene los vértices en $(r_0,0)$, $\left(r_0,\frac\pi2\right)$, $(r_0,\pi)$, $\left(r_0,-\frac\pi2\right)$ donde $r_0$ es una constante positiva determinado por qué tan grande quieres que esa plaza.

Ahora giramos $\delta$ radianes a la derecha y reducir la plaza para que el nuevo plaza de los vértices de la mentira en la antigua plaza de los bordes. (Para una $10^\circ$ rotación, desea $\delta = \frac{\pi}{180} \cdot 10.$) A continuación, el origen, un vértice de la original de la plaza, y el correspondiente vértice de la nueva plaza de hacer un triángulo con ángulo de $\delta$ en el origen, $\frac\pi4$ ($45^\circ$) en el original de la plaza del vértice, e $\frac{3\pi}{4}-\delta$ en la nueva plaza del vértice. Deje $r_1$ ser la distancia desde el origen a la nueva plaza del vértice. Por la ley de los senos, $$ \frac{r_1}{\sin \left(\frac{\pi}{4}\right)} = \frac{r_0}{\sin \left(\frac{3\pi}{4}-\delta\right)}.$$ Por lo tanto $$r_1 = \frac{\sin \left(\frac{\pi}{4}\right)}{\sin \left(\frac{3\pi}{4}-\delta\right)} r_0 = \frac{\sin \left(\frac{\pi}{4}\right)}{\sin \left(\frac{\pi}{4}+\delta\right)} r_0.$$ Vamos $$\rho = \frac{\sin \left(\frac{\pi}{4}\right)}{\sin \left(\frac{\pi}{4}+\delta\right)}$$ de modo que $r_1 = \rho\, r_0.$ Para un ángulo de $10^\circ,$ un poco de cálculo muestra que $\rho \approx 0.86321799\,$ es decir, $$r_1 \approx 0.86321799\, r_0.$$ La comprobación de este en contra de los cálculos por @turkeyhundt para el $10$-grado de rotación, debemos encontrar ese $0.86321799 \approx \frac{\sqrt{a^2+b^2}}{100},$ y de hecho, para $b = 85.01,$ $a=100-b$ que es lo que nos encontramos.

Ahora observar que, en general, si $r_n$ es la distancia desde el origen a un vértice de la $n$th plaza, a continuación, $r_{n+1} = \rho\, r_n.$ También, si $\alpha$ es la dirección desde el origen hasta un vértice de la $n$th plaza, a continuación, la dirección desde el origen hasta un vértice de la $n+1$st cuadrado es $\alpha-\delta$ (debido a coordenadas polares para medir ángulos en sentido antihorario y estamos de rotación de las agujas del reloj). Poner estos hechos en conjunto, los vértices de la $n$th plaza tienen coordenadas polares $$ (\rho^n r_0,\; n\delta),\\ \left(\rho^n r_0,\; \frac\pi2-n\delta\right)\!,\\ (\rho^n r_0,\; \pi-n\delta),\\ \left(\rho^n r_0,\; -\frac\pi2-n\delta\right)\!. $$ Para trazar estas en coordenadas Cartesianas, convertir el $(r,\theta)$ coordenadas de cada uno de los vértices de cada cuadrado de a $(x,y)$ coordinar por la costumbre transformación, $x=r\cos\theta$ $y=r\sin\theta.$ Por ejemplo, un vértice de la $n$th plaza tendrá coordenadas Cartesianas $(\rho^n r_0 \cos(-n\delta), \rho^n r_0 \sin(-n\delta)),$ y para el otro tres usted sólo tiene que añadir un múltiplo de $\frac\pi2$ al ángulo.

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