パイソニスタの方へ
・(1)のPolygonで、dict?を使わずにできますか? return1文だけです。
普通は?余弦定理、内積だろ。私は勉強中です。
(1) Polygonのanglesで
The internal angle at each vertex.
https://docs.sympy.org/latest/modules/geometry/polygons.html#sympy.geometry.polygon.Polygon.angles
# (1) Polygonのanglesで
from sympy import *
var('AB',real=True,poitive=True)
def myTriangleRad(myT):
P1=myT.args[0]
P2=myT.args[1]
P3=myT.args[2]
myPol=Polygon(P1,P2,P3)
return myPol.angles[P1],myPol.angles[P2],myPol.angles[P3]
AB=10
tr=Triangle(Point(0,AB),Point(AB,0),Point(AB,AB))
print("#",myTriangleRad(tr)[0],deg(myTriangleRad(tr)[0]))
print("#",myTriangleRad(tr)[1],deg(myTriangleRad(tr)[1]))
print("#",myTriangleRad(tr)[2],deg(myTriangleRad(tr)[2]))
# pi/4 45
# pi/4 45
# pi/2 90
tr=Triangle(Point(0,AB),Point(AB,AB),Point(AB,0))
print("#",myTriangleRad(tr)[0],deg(myTriangleRad(tr)[0]))
print("#",myTriangleRad(tr)[1],deg(myTriangleRad(tr)[1]))
print("#",myTriangleRad(tr)[2],deg(myTriangleRad(tr)[2]))
# pi/4 45
# pi/2 90
# pi/4 45
(2) Lineのangle_betweenで
Return the non-reflex angle formed by rays emanating from the origin with directions the same as the direction vectors of the linear entities.
https://docs.sympy.org/latest/modules/geometry/lines.html#sympy.geometry.line.LinearEntity.angle_between
# (2) Lineのangle_betweenで
from sympy import *
var('AB',real=True,poitive=True)
def myTriangleRad(myT):
return Line(myT.args[0],myT.args[1]).angle_between(Line(myT.args[0],myT.args[2])), \
Line(myT.args[1],myT.args[2]).angle_between(Line(myT.args[1],myT.args[0])), \
Line(myT.args[2],myT.args[0]).angle_between(Line(myT.args[2],myT.args[1]))
AB=10
tr=Triangle(Point(0,AB),Point(AB,0),Point(AB,AB))
print("#",myTriangleRad(tr)[0],deg(myTriangleRad(tr)[0]))
print("#",myTriangleRad(tr)[1],deg(myTriangleRad(tr)[1]))
print("#",myTriangleRad(tr)[2],deg(myTriangleRad(tr)[2]))
# pi/4 45
# pi/4 45
# pi/2 90
tr=Triangle(Point(0,AB),Point(AB,AB),Point(AB,0))
print("#",myTriangleRad(tr)[0],deg(myTriangleRad(tr)[0]))
print("#",myTriangleRad(tr)[1],deg(myTriangleRad(tr)[1]))
print("#",myTriangleRad(tr)[2],deg(myTriangleRad(tr)[2]))
# pi/4 45
# pi/2 90
# pi/4 45
(3) 余弦定理で
(勉強中)
(4) 内積で
(勉強中)
作図
(省略)