Red de conocimiento informático - Material del sitio web - ¿Cómo rotar el sistema de coordenadas?

¿Cómo rotar el sistema de coordenadas?

Se recomienda utilizar el plano complejo o las coordenadas polares para el sistema de coordenadas giratorio para convertir las coordenadas en forma de (x, y) en forma de (a bi) o (m, arg). (longitud del módulo, ángulo del argumento), que es simple. Girar coordenadas polares es suficiente. Se pueden resolver cambios más complejos utilizando el plano complejo, suponiendo que el eje y es el eje imaginario y definiendo algunas operaciones con números complejos usted mismo.

El siguiente es un ejemplo de cómo mezclar coordenadas rectangulares y coordenadas polares (lo escribí al azar. Haga clic en el botón para rotar el gráfico 30 grados en sentido contrario a las agujas del reloj).

Coloque un botón y un PictureBox. el formulario, ingrese el siguiente código:

Dim pi como doble

Dim x(3) como doble, y(3) como doble

Subcomando privado1_Clic ()

Atenuar theta como doble

Atenuar ttx como doble, tty como doble

theta = pi / 6

Para i = 0 a 3

ttx = m(x(i), y(i)) * Cos(theta arg(x(i), y(i)))

tty = m(x (i), y(i)) * Sin(theta arg(x(i), y(i)))

x(i) = ttx

y (i) = tty

Siguiente

drawA

Fin Sub

Sub privado Form_Load()

pi = 4 * Atn(1)

Imagen1.ScaleMode = 3

Imagen1.Scale (-Imagen1.ScaleWidth * 1/2, Imagen1.ScaleHeight * 1/2)-(Imagen1 .ScaleWidth * 1/2, -Picture1.ScaleHeight * 1/2)

x(0) = 10

x(1) = 26

x (2) = 48

x(3) = 34

y(0) = 16

y(1) = 43

y( 2) = 22

y(3) = 10

Imagen1.AutoRedraw = Verdadero

tx = 100

ty = 0

Llamar a drawA

Fin Sub

Sub drawA()

Imagen1.Línea (-100, 0)-(100 , 0)

Imagen1.Línea (0, 100)-(0, -100)

Para i = 0 a 2

Imagen1.Línea (x (i) , y(i))-(x(i 1), y(i 1))

Siguiente

Imagen 1. Línea (x(3), y(3) ))- (x(0), y(0))

End Sub

Función m(ByVal x As Double, ByVal y As Double) As Double

m = Sqr(x ^ 2 y ^ 2)

Fin de Función

Función arg(ByVal x As Double, ByVal y As Double)

Si x = 0 Entonces

Si y = 0 Entonces arg = 0: Salir de la función

p>

Si y gt; 0 Entonces arg = pi / 2: Salir de la función

arg = 3 * pi / 2: Salir de la función

ElseIf x gt; /p>

Si y gt 0 Entonces arg = Atn(y / x): Salir de la función

Si y = 0 Entonces arg = 0: Salir de la función

arg = 2 * pi - Atn(-y / x): Salir de la función

Else

Si y gt 0 Entonces arg = pi - Atn(-y / x): Salir de la función

Si y = 0 Entonces arg = pi: Salir de la función

arg = pi Atn(y / x)

Fin si

Fin Función

Equivalente a girar el eje de coordenadas en el sentido de las agujas del reloj