もっと、短くなる方法を教えて下さい。
解答、別解1.別解2のようにやったら、いいですか?
original link
x-y=0,x+y-2=0,3*x-y-6=0
3直線でできる三角形に内接する円の中心の座標(内心)
SymPy Liveで
以下のソースコードを貼り付けて、Evaluateです。
from sympy import *
var('x y')
def mySympify(myL):
return sympify(myL.replace('=0',''))
def myDicPoint(myDic):
return Point2D(myDic.get(x,""),myDic.get(y,""))
myInput="x-y=0,x+y-2=0,3*x-y-6=0"
print("#",myInput)
myStr=myInput.split(',')
myLine_0=Eq(mySympify(myStr[0]),0)
myLine_1=Eq(mySympify(myStr[1]),0)
myLine_2=Eq(mySympify(myStr[2]),0)
myP0=myDicPoint(solve([myLine_1,myLine_2],[x,y]))
myP1=myDicPoint(solve([myLine_2,myLine_0],[x,y]))
myP2=myDicPoint(solve([myLine_0,myLine_1],[x,y]))
print("#",Triangle(myP0,myP1,myP2).incenter)
# x-y=0,x+y-2=0,3*x-y-6=0
# Point2D(4 - sqrt(5), 1)
# ('#', 'x-y=0,x+y-2=0,3*x-y-6=0')
# ('#', Point2D(4 - sqrt(5), 1))