オリジナル
sympyで
from sympy import *
var('x y')
def myLineEquation(P1,P2):
return solve(sympify(str(Line(P1,P2).equation())),y)[0]
A=Point(-6, 0)
B=Point( 0,-8)
C=Point(15,28)
print("#(1)",myLineEquation(A,B),",",myLineEquation(A,C))
print("#(2)",Triangle(A,B,C).area)
print("#(3)",Point(A).distance(B),Point(B).distance(C),Point(C).distance(A))
print("#(4)",Triangle(A,B,C).inradius)
print("#(5)",Triangle(A,B,C).incenter)
print("#(6)",myLineEquation(B,Triangle(A,B,C).incenter))
#(1) -4*x/3 - 8 , 4*x/3 + 8
#(2) 168
#(3) 10 39 35
#(4) 4
#(5) Point2D(-1, 0)
#(6) -8*x - 8
sympyで(値を後から代入でもできました。)
from sympy import *
var('x y')
var('Ax Ay Bx By Cx Cy')
def myLineEquation(P1,P2):
return solve(sympify(str(Line(P1,P2).equation())),y)[0]
A=Point(Ax,Ay)
B=Point(Bx,By)
C=Point(Cx,Cy)
print("#<1>",myLineEquation(A,B),",",myLineEquation(A,C))
print("#<2>",Triangle(A,B,C).area)
print("#<3>",Point(A).distance(B),Point(B).distance(C),Point(C).distance(A))
print("#<4>",Triangle(A,B,C).inradius)
print("#<5>",Triangle(A,B,C).incenter)
print("#<6>",myLineEquation(B,Triangle(A,B,C).incenter))
mySubs={Ax:-6,Ay:0,Bx:0,By:-8,Cx:15,Cy:28}
print("#(1)",myLineEquation(A,B).subs(mySubs),",",myLineEquation(A,C).subs(mySubs))
print("#(2)",Triangle(A,B,C).area.subs(mySubs))
print("#(3)",Point(A).distance(B).subs(mySubs),Point(B).distance(C).subs(mySubs),Point(C).distance(A).subs(mySubs))
print("#(4)",Triangle(A,B,C).inradius.subs(mySubs))
print("#(5)",Triangle(A,B,C).incenter.subs(mySubs))
print("#(6)",myLineEquation(B,Triangle(A,B,C).incenter).subs(mySubs))
#<1>~<6>出力省略
#(1) -4*x/3 - 8 , 4*x/3 + 8
#(2) 168
#(3) 10 39 35
#(4) 4
#(5) Point2D(-1, 0)
#(6) -8*x - 8
参考
myLineEquation関数作成のため