Exemplo 8.1: Considere o triângulo A=(2,1), B=(1,4) e C=(5,5). Determine a altura referente ao lado BC.
Solução: Para isso, basta calcular a distância do ponto A à reta que passa por B e C.
import sympy as spA=sp.Matrix([2,1])B=sp.Matrix([1,4])C=sp.Matrix([5,5])#1° vamos obter a equação cartesiana da reta por B e CBC=C-B #vetor diretor da retaR=sp.Matrix([[0,-1],[1,0]]) #matriz de rotação 90°n=R*BC #vetor normal à reta por B e Cx,y=sp.symbols('x y',real=True)X=sp.Matrix([x,y])#Equação cartesiana da retaeq=sp.Eq(n.dot(X)-n.dot(B),0)print('Equação cartesiana da reta r por B e C')display(eq)#Calculo da distância entre A e a retaprint('d(A,r)')display(sp.Abs(n.dot(A)-n.dot(B))/n.norm())
Equação cartesiana da reta r por B e C
Eq(-x + 4*y - 15, 0)
d(A,r)
13*sqrt(17)/17
Exemplo 8.2: Determine a distância entre as retas e
import sympy as sp#determinando a relação entre as retasnr=sp.Matrix([1,-sp.sqrt(3)]) #vetor normal a rns=sp.Matrix([sp.sqrt(3),-3]) #vetor normal a s#verificando se os vetores são múltiplosprint('Equação para saber se os vetores são múltiplos')l=sp.symbols('l',real=True)eq=sp.Eq(nr,l*ns)display(eq)#resolvendo a equaçãosol=sp.solve(eq,l)print('Número de soluções')nsol=len(sol)display(nsol)#como tem 1 solução, significa que os vetores são múltiplos#portanto as retas são paralelas ou coincidentes#para calcular a distância, basta tomar um ponto de uma e calcular a distância até a outra#obtendo um ponto de sx,y=sp.symbols('x y',real=True)sol1=sp.solve((sp.sqrt(3)*x-3*y-1,x),(x,y))P=sp.Matrix([sol1[x],sol1[y]])#calculando a distância de P a rprint('d(P,r)')display(sp.Abs(nr.dot(P)-4)/nr.norm())