0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「sympyで、座標面上の三角形の内角の計算」を調べた。

Last updated at Posted at 2024-07-04

パイソニスタの方へ
・(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) 内積で

(勉強中)

作図

(省略)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?