¿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