Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб. 7 КП АлГем (Преобразования системы координат)

.docx
Скачиваний:
5
Добавлен:
30.08.2024
Размер:
177.41 Кб
Скачать

Преобразования системы координат

import matplotlib.pyplot as plt x=-2 y=1 x1=5 y1=3 a=x-x1 b=y-y1 print("Координаты начала новый системы координат в старой:", a, b) plt.arrow(-2, 0, 7, 0, width=0.08, color='black') plt.arrow(0, -2, 0, 7, width=0.08, color='black') plt.arrow(a, b, 1, 0, width=0.08, color='blue') plt.arrow(a, b, 0, 1, width=0.08, color='blue') plt.plot(x, y, 'or') plt.text(x+0.3,y-0.5,'M',color='red') plt.text(-0.5, -0.5, 'O') plt.text(a - 0.5, b - 0.5, '$O_1$', color='blue') plt.title("Старая система координат (чёрная) и новая система координат (синяя)") plt.xlabel('x') plt.ylabel('y') plt.axis('equal') plt.grid() plt.show()

Координаты начала новый системы координат в старой: -7 -2

import numpy as np x=np.sqrt(2) y=np.sqrt(2) al=5*np.pi/4 x1=x*np.cos(-al)-y*np.sin(-al) y1=y*np.cos(-al)+x*np.sin(-al) print("Координаты точки в новой системе координат:",x1,y1) x2=x1*np.cos(al)-y1*np.cos(al) y2=y1*np.cos(al)+x1*np.cos(al) print("Проверка:",x2,y2) xy=[x1,y1] m=[xy[0]*np.cos(al)-xy[1]*np.sin(al), xy[0]*np.sin(al)+xy[1]*np.cos(al)] print("Проверка 2:",m) plt.arrow(-2, 0, 7, 0, width=0.08, color='black') plt.arrow(0, -2, 0, 7, width=0.08, color='black') x3=np.cos(-al) y3=np.sin(-al) x4=np.cos(-al) y4=-np.sin(-al) plt.arrow(0, 0, x3, y3, width=0.08, color='blue') plt.arrow(0, 0, x4, y4, width=0.08, color='blue') plt.plot(x, y, 'or') plt.text(x+0.3,y-0.5,'M',color='red') plt.text(0.2, -0.5, 'O') plt.text(0.1, 0.1, '$O_1$', color='blue') plt.title("Старая система координат (чёрная) и новая система координат (синяя)") plt.xlabel('x') plt.ylabel('y') plt.axis('equal') plt.grid() plt.show()

Координаты точки в новой системе координат: -2.0 -2.220446049250313e-16 Проверка: 1.4142135623730951 1.4142135623730956 Проверка 2: [1.4142135623730951, 1.4142135623730951]

ax=1 ay=1 bx=1 by=3 cx=4 cy=1 a=-5 b=2 ax1=a+ax ay1=b+ay bx1=a+bx by1=b+by cx1=a+cx cy1=b+cy print("Координаты точки А1 в старой системе координат:",ax1,ay1) print("Координаты точки В1 в старой системе координат:",bx1,by1) print("Координаты точки С1 в старой системе координат:",cx1,cy1) plt.arrow(-2, 0, 7, 0, width=0.08, color='black') plt.arrow(0, -2, 0, 7, width=0.08, color='black') plt.arrow(a, b, 1, 0, width=0.08, color='blue') plt.arrow(a, b, 0, 1, width=0.08, color='blue') plt.plot(ax,ay,'og') plt.plot(bx,by,'og') plt.plot(cx,cy,'og') plt.plot(ax1,ay1,'or') plt.plot(bx1,by1,'or') plt.plot(cx1,cy1,'or') plt.text(ax-0.5,ay-0.5,'A',color='green') plt.text(bx-0.5,by+0.3,'B',color='green') plt.text(cx+0.3,cy-0.5,'C',color='green') plt.text(ax1-0.5,ay1-0.5,'$A_1$',color='red') plt.text(bx1-0.5,by1+0.3,'$B_1$',color='red') plt.text(cx1+0.3,cy1-0.5,'$C_1$',color='red') plt.plot([ax,bx],[ay,by],'-g') plt.plot([bx,cx],[by,cy],'-g') plt.plot([cx,ax],[cy,ay],'-g') plt.plot([ax1,bx1],[ay1,by1],'-r') plt.plot([bx1,cx1],[by1,cy1],'-r') plt.plot([cx1,ax1],[cy1,ay1],'-r') plt.text(-0.4, -0.5, 'O') plt.text(a-0.4, b-0.2, '$O_1$', color='blue') plt.title("Треугольник АВС в старой системе координат и А1В1С1 в новой") plt.xlabel('x') plt.ylabel('y') plt.axis('equal') plt.grid() plt.show()

Координаты точки А1 в старой системе координат: -4 3 Координаты точки В1 в старой системе координат: -4 5 Координаты точки С1 в старой системе координат: -1 3

ax=1 ay=1 bx=1 by=3 cx=4 cy=1 a=-5 b=2 al=7*np.pi/6 ax1=ax*np.cos(al)-ay*np.sin(al) ay1=ay*np.cos(al)+ax*np.sin(al) bx1=bx*np.cos(al)-by*np.sin(al) by1=by*np.cos(al)+bx*np.sin(al) cx1=cx*np.cos(al)-cy*np.sin(al) cy1=cy*np.cos(al)+cx*np.sin(al) print("Координаты точки A в новой системе координат:",ax1,ay1) print("Координаты точки B в новой системе координат:",bx1,by1) print("Координаты точки C в новой системе координат:",cx1,ay1) ax2=ax1*np.cos(-al)-ay1*np.sin(-al) ay2=ay1*np.cos(-al)+ax1*np.sin(-al) print("Проверка:",ax2,ay2) bx2=bx1*np.cos(-al)-by1*np.sin(-al) by2=by1*np.cos(-al)+bx1*np.sin(-al) print("Проверка:",bx2,by2) cx2=cx1*np.cos(-al)-cy1*np.sin(-al) cy2=cy1*np.cos(-al)+cx1*np.sin(-al) print("Проверка:",cx2,cy2) plt.arrow(-2, 0, 7, 0, width=0.08, color='black') plt.arrow(0, -2, 0, 7, width=0.08, color='black') x3 = np.cos(-al) y3 = -np.sin(-al) x4 = np.sin(-al) y4 = np.cos(-al) plt.arrow(0, 0, x3, y3, width=0.05, color='blue') plt.arrow(0, 0, x4, y4, width=0.05, color='blue') plt.plot(ax,ay,'og') plt.plot(bx,by,'og') plt.plot(cx,cy,'og') plt.plot(ax1,ay1,'or') plt.plot(bx1,by1,'or') plt.plot(cx1,cy1,'or') plt.text(ax-0.5,ay-0.5,'A',color='green') plt.text(bx-0.5,by+0.3,'B',color='green') plt.text(cx+0.3,cy-0.5,'C',color='green') plt.text(ax1-0.5,ay1-0.5,'$A_1$',color='red') plt.text(bx1+0.1,by1+0.3,'$B_1$',color='red') plt.text(cx1-0.5,cy1-0.5,'$C_1$',color='red') plt.plot([ax,bx],[ay,by],'-g') plt.plot([bx,cx],[by,cy],'-g') plt.plot([cx,ax],[cy,ay],'-g') plt.plot([ax1,bx1],[ay1,by1],'-r') plt.plot([bx1,cx1],[by1,cy1],'-r') plt.plot([cx1,ax1],[cy1,ay1],'-r') plt.text(-0.4, -0.5, 'O') plt.text(0.2, 0.2, '$O_1$',color='blue') plt.title("Треугольник АВС в старой системе координат и А1В1С1 в новой") plt.xlabel('x') plt.ylabel('y') plt.axis('equal') plt.grid() plt.show()

Координаты точки A в новой системе координат: -0.3660254037844391 -1.3660254037844386 Координаты точки B в новой системе координат: 0.6339745962155603 -3.098076211353316 Координаты точки C в новой системе координат: -2.9641016151377557 -1.3660254037844386 Проверка: 1.0 1.0 Проверка: 1.0 3.0 Проверка: 4.0 0.9999999999999998