ishi720 / ferrisWheelRotate

観覧車の回転から、一周回る時間を求める
0 stars 0 forks source link

傾きを計算して、二枚の差分を取る #3

Open ishi720 opened 1 month ago

ishi720 commented 1 month ago

Pythonで2つの線分の間の角度を求める

import math

def angle_between_lines(p1, p2, p3, p4):
    # ベクトルを計算
    vector1 = (p2[0] - p1[0], p2[1] - p1[1])
    vector2 = (p4[0] - p3[0], p4[1] - p3[1])

    # 内積を計算
    dot_product = vector1[0] * vector2[0] + vector1[1] * vector2[1]

    # ベクトルの大きさを計算
    magnitude1 = math.sqrt(vector1[0]**2 + vector1[1]**2)
    magnitude2 = math.sqrt(vector2[0]**2 + vector2[1]**2)

    # コサインθを計算
    cos_theta = dot_product / (magnitude1 * magnitude2)

    # 角度をラジアンから度に変換
    angle = math.degrees(math.acos(cos_theta))

    return angle

# 例: 点 (1, 2) - (4, 6) の線と点 (2, 1) - (6, 5) の線の間の角度を計算
p1 = (1, 2)
p2 = (4, 6)
p3 = (2, 1)
p4 = (6, 5)

angle = angle_between_lines(p1, p2, p3, p4)
print(f"2つの線分の間の角度: {angle}度")