我試圖在 2 點之間的圓上找到中點,圖畫
有給定的半徑、p1、p2 和圓的中點。
p1 和 p2 之間的距離是一個直徑,我正在嘗試撰寫 python 公式來回傳這兩個點之間的圓上的點。我知道這是一個相當愚蠢的問題,但我現在試著做 3 個小時,而我在網上能找到的只是這兩點之間的距離。
我正在嘗試找到 p3 的公式(如圖所示)
這就是我到目前為止所做的:
import math
points = [[100, 200], [250, 350]]
midpoint = (int(((points[0][0] points[1][0]) / 2)), int(((points[0][1] points[1][1]) / 2)))
radius = int(math.sqrt(((points[1][0] - points[0][0])**2) ((points[1][1] - points[0][1])**2))) // 2
# This below is wrong
print(int(midpoint[0] - math.sqrt((points[0][1] - midpoint[1]) ** 2)),
int(midpoint[1] - math.sqrt((points[0][0] - midpoint[1]) ** 2)))
uj5u.com熱心網友回復:
不需要三角學,這完全是矯枉過正。
圓的中心是Xs= (X1 X2) / 2,Ys= (Y1 Y2) / 2。
兩個相反的“中點”由X3 = Xs - (Y1 - Ys),Y3 = Ys (X1 - Xs)和X4 = Xs (Y1 - Ys),給出Y4 = Ys - (X1 - Xs)。
如果您更喜歡直接公式X3 = (X1 X2 - Y1 Y2) / 2,Y3 = (X1 - X2 Y1 Y2) / 2...
uj5u.com熱心網友回復:
要在圓上生成點,請使用極坐標方程(https://math.stackexchange.com/questions/154550/polar-equation-of-a-circle)
import math
import random
points = [[100, 200], [250, 350]]
midpoint = (int(((points[0][0] points[1][0]) / 2)), int(((points[0][1] points[1][1]) / 2)))
radius = int(math.sqrt(((points[1][0] - points[0][0])**2) ((points[1][1] - points[0][1])**2))) // 2
angle = random.uniform(0, 2 * math.pi)
x_relative = radius * math.cos(angle)
y_relative = radius * math.sin(angle)
x = midpoint[0] x_relative
y = midpoint[1] y_relative
print(f"{x} {y}")
要在點之間的圓上找到中間點:
import math
points = [[100, 200], [250, 350]]
midpoint = (int(((points[0][0] points[1][0]) / 2)), int(((points[0][1] points[1][1]) / 2)))
radius = int(math.sqrt(((points[1][0] - points[0][0])**2) ((points[1][1] - points[0][1])**2))) // 2
points_relative = [[points[0][0] - midpoint[0], points[0][1] - midpoint[1]], [points[1][0] - midpoint[0], points[1][1] - midpoint[1]]]
midpoint_points_relative = [[points_relative[0][1], - points_relative[0][0]], [points_relative[1][1], - points_relative[1][0]]]
midpoint_points = [[midpoint_points_relative[0][0] midpoint[0], midpoint_points_relative[0][1] midpoint[1]], [midpoint_points_relative[1][0] midpoint[0], midpoint_points_relative[1][1] midpoint[1]]]
print(points)
print(midpoint)
print(points_relative)
print(midpoint_points)
您可以使用此頁面測驗結果:https ://www.desmos.com/calculator/mhq4hsncnh
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/520212.html
標籤:Python数学几何学
上一篇:差異實際值與預期值不同
下一篇:數學公式錯誤積分
