Cómo describe un robot dónde está algo
Un sistema de coordenadas es la forma de dar una posición con números. Un robot lo usa para saber dónde está su mano y hacia dónde apunta.
Si sabes dar la posición y el ángulo de un punto, puedes girarlo y seguirlo. Es la base de la robótica. Aquí todo es una simulación: no hace falta ningún robot real.
Al final de esta lección
Nota
Puedo describir dónde está un punto y girarlo un ángulo dado.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Coordenadas | dos números que dan una posición | (10, 6) |
| Origen | el punto donde las dos coordenadas valen 0 | |
| Ángulo | cuánto gira algo, medido en grados | |
| Giro | mover un punto alrededor del origen | |
| Radián | otra unidad de ángulo, la que usan los programas |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Dos números dan una posición
Un punto de un plano se da con dos números. La x dice cuánto está a la derecha del origen. La y dice cuánto está hacia arriba.
En este módulo la unidad es el centímetro. El punto (10, 6) está a 10 cm a la derecha y a 6 cm arriba del origen. Un número negativo va hacia el lado contrario.
Ejemplo resuelto: distancia y ángulo de un punto
| Punto | Distancia al origen | Ángulo desde el eje x |
|---|---|---|
| (3, 4) | 5 cm | 53,1 grados |
| (0, 5) | 5 cm | 90 grados |
| (-1, 1) | 1,41 cm | 135 grados |
| (6, 0) | 6 cm | 0 grados |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Distancia y ángulo del punto (3, 4)
docker exec jupyter python3 -c "import numpy as np; print(np.hypot(3, 4), round(np.degrees(np.arctan2(4, 3)), 1))"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Girar cambia el ángulo, no la distancia
Girar un punto es moverlo alrededor del origen, como la manecilla de un reloj. Su distancia al origen no cambia: solo cambia su ángulo.
Para girar (x, y) un ángulo a se hacen dos cuentas. La x nueva es x por el coseno de a, menos y por el seno de a. La y nueva es x por el seno de a, más y por el coseno de a.
Ejemplo resuelto: girar (2, 1) 90 grados
| Paso | Cálculo | Resultado |
|---|---|---|
| Ángulo | 90 grados, con coseno 0 y seno 1 | a = 90 |
| x nueva | 2 × 0 - 1 × 1 | -1 |
| y nueva | 2 × 1 + 1 × 0 | 2 |
| Con una matriz | la tabla [[0, -1], [1, 0]] aplicada a (2, 1) | (-1, 2) |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
El giro de 90 grados con una matriz
docker exec jupyter python3 -c "import numpy as np; print(np.array([[0, -1], [1, 0]]) @ np.array([2, 1]))"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Python no usa grados
Consejo
Las funciones seno y coseno de Python esperan radianes. Un radián es una unidad de ángulo: 180 grados son unos 3,14 radianes. Convierte siempre con math.radians antes de calcular.
El giro en Python
import math
# Un punto a 2 cm a la derecha y 1 cm hacia arriba.
x = 2
y = 1
angle = 90 # grados: cámbialo a 180 y ejecuta otra vez
a = math.radians(angle)
new_x = x * math.cos(a) - y * math.sin(a)
new_y = x * math.sin(a) + y * math.cos(a)
print("punto nuevo:", round(new_x, 2), round(new_y, 2))
print("distancia antes:", round(math.hypot(x, y), 2))
print("distancia después:", round(math.hypot(new_x, new_y), 2))
Un error muy común
Advertencia
Mucha gente cree que girar un punto lo acerca o lo aleja del origen. Girar solo cambia el ángulo: la distancia es la misma. Si la distancia cambia, la fórmula está mal escrita.
Para ir más lejos: la mano
Imagina una barra de 10 cm fija en el origen, con su extremo en (10, 0). Gira la barra 90 grados y 45 grados y apunta dónde queda el extremo.
Después gira el extremo 180 grados. ¿A qué distancia del origen queda en cada caso?