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

Лаб. 5 КП АлГем (Прямая на плоскости)

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

№1

import numpy as np import matplotlib.pyplot as plt from sympy import * import math x=np.linspace(-10,10,100)

a,b=Point(2,3),Point(-4,-1) y11,y12=Point(0,-100),Point(0,100) a1=np.array(a) b1=np.array(b) y1=np.array(y11) y2=np.array(y12) l1=Line(a,b) l2=Line(y11,y12) ab=l1.equation() yy=l2.equation() print("Уравнение прямой AB: ",ab) print("Уравнение оси y: ",yy) c=l1.intersection(l2) print("Точка C:",c) c1=[0,5/3] plt.plot([a1[0],b1[0]],[a1[1],b1[1]],'-b') plt.plot(a1[0],a1[1],'ob') plt.plot(b1[0],b1[1],'ob') plt.plot(c1[0],c1[1],'or') plt.plot(x,(4*x+10)/6) plt.text(a1[0]-0.3, a1[1]+0.2,'A',fontsize=12,color='Blue') plt.text(b1[0]-0.2, b1[1]+0.3,'B',fontsize=12,color='Blue') plt.text(c1[0]-0.6, c1[1]+0.2,'C',fontsize=12,color='Red') plt.title("Прямая: 4x - 6y + 10=0") plt.xlabel('x') plt.ylabel('y') plt.axvline(x=0,color='k') plt.axhline(y=0,color='k') plt.grid() plt.show()

Уравнение прямой AB: 4*x - 6*y + 10 Уравнение оси y: x Точка C: [Point2D(0, 5/3)]

№2

n1=[3,4] n2=[6,8] o1=n1[0]/n2[0] o2=n1[1]/n2[1] y1=[-7.5,5] y2=[2.5,-2.5] y=Line(y1,y2) if o1==o2: o=[0,5] p=y.distance(o) print("Расстояние между прямыми:",p) else: print("Прямые пересекаются") h1,=plt.plot(x,(3*x-20)/-4,'r',label='$l1: 3x+4y-20=0$') h2,=plt.plot(x,(6*x+5)/-8,'b',label='$l2: 6x+8y+5=0$') plt.xlabel('x') plt.ylabel('y') plt.axvline(x=0,color='k') plt.axhline(y=0,color='k') plt.legend(handles=[h1,h2]) plt.grid() plt.show()

Расстояние между прямыми: 9/2

№3

a1,b1=Point(0,2),Point(5,4) x11,x12=Point(-100,0),Point(100,0) y11,y12=Point(0,-100),Point(0,100) l=Line(a1,b1) lx=Line(x11,x12) ly=Line(y11,y12) xx=lx.equation() yy=ly.equation() print("Уравнение оси x: ",xx) print("Уравнение оси y: ",yy) aa=l.intersection(lx) print("Точка A:",aa) bb=l.intersection(ly) print("Точка B:",bb) a=[-5,0] b=[0,2] ao=ly.distance(a) print("Сторона AO:",ao) ob=lx.distance(b) print("Сторона OB:",ob) s=0.5*(ao*ob) print("Площадь треугольника:",round(s)) plt.plot(a[0],a[1],'om') plt.plot(b[0],b[1],'om') plt.plot(0,0,'om') plt.text(a[0]-0.1, a[1]+0.2,'A',fontsize=12,color='Maroon') plt.text(b[0]-0.6, b[1]+0.2,'B',fontsize=12,color='Maroon') plt.text(0.1, 0.2,'O',fontsize=12,color='Maroon') plt.plot(x,(2*x+10)/5,'-m') plt.title("Прямая: 2x - 5y + 10=0") plt.xlabel('x') plt.ylabel('y') plt.axvline(x=0,color='k') plt.axhline(y=0,color='k') plt.grid() plt.show()

Уравнение оси x: y Уравнение оси y: x Точка A: [Point2D(-5, 0)] Точка B: [Point2D(0, 2)] Сторона AO: 5 Сторона OB: 2 Площадь треугольника: 5

№4

a=[1,-2] b=[5,4] c=[-2,0] ab=Line(a,b) bc=Line(b,c) ca=Line(c,a) l1=ab.equation() l2=bc.equation() l3=ca.equation() X=Symbol('X') Y=Symbol('Y') print(l1) print(l2) print(l3) ab1=[-6,4,14] bc1=[4,-7,8] ca1=[2,3,4] ab2=(ab1[0]*X+ab1[1]*Y+ab1[2])/(np.sqrt(ab1[0]**2+ab1[1]**2)) bc2=(bc1[0]*X+bc1[1]*Y+bc1[2])/(np.sqrt(bc1[0]**2+bc1[1]**2)) ca2=(ca1[0]*X+ca1[1]*Y+ca1[2])/(np.sqrt(ca1[0]**2+ca1[1]**2)) bac=ab2-ca2 abc=bc2-ab2 acb=ca2-bc2 print("Уравнение биссектрисы внунтр.угла A:",bac) print("Уравнение биссектрисы внунтр.угла B:",abc) print("Уравнение биссектрисы внунтр.угла C:",acb) plt.plot(x,(-6*x+14)/-4,'-b') plt.plot(x,(4*x+8)/7,'-b') plt.plot(x,(2*x+4)/-3,'-b') h1,=plt.plot(x,(-1.39*x+0.83)/0.28,'--y',label='Бисс. угла A') h2,=plt.plot(x,(1.33*x-0.95)/1.42,'--r',label='Бисс. угла B') h3,=plt.plot(x,(0.06*x+0.12)/-1.7,'--m',label='Бисс. угла C') plt.text(a[0]+0.5, a[1]+0.2,'A',fontsize=12,color='Yellow') plt.text(b[0]-0.3, b[1]+0.2,'B',fontsize=12,color='Red') plt.text(c[0]-0.1, c[1]+0.3,'C',fontsize=12,color='Maroon') plt.plot(a[0],a[1],'oy') plt.plot(b[0],b[1],'or') plt.plot(c[0],c[1],'om') plt.xlabel('x') plt.ylabel('y') plt.axvline(x=0,color='k') plt.axhline(y=0,color='k') plt.legend(handles=[h1,h2,h3]) plt.xlim(-8,8) plt.ylim(-8,8) plt.grid() plt.show()

-6*x + 4*y + 14 4*x - 7*y + 8 2*x + 3*y + 4 Уравнение биссектрисы внунтр.угла A: -1.38675049056307*X - 0.277350098112615*Y + 0.832050294337844 Уравнение биссектрисы внунтр.угла B: 1.32818923269468*X - 1.42294333834969*Y - 0.949172810074634 Уравнение биссектрисы внунтр.угла C: 0.0585612578683953*X + 1.7002934364623*Y + 0.117122515736791