这是一道纯数学题。假设你的三角形有这些点和到 P 的距离:
A = (x₁, y₁) |A - P| = d₁
B = (x₂, y₂) |B - P| = d₂
C = (x₃, y₃) |C - P| = d₃
首先,取A 和B 以及它们的圆方程:
(x - x₁)² + (y - y₁)² = d₁²
(x - x₂)² + (y - y₂)² = d₂²
找到圆的交点:
(x - x₁)² + (y - y₁)² - d₁² = (x - x₂)² + (y - y₂)² - d₂²
x² - 2xx₁ + x₁² + y² - 2yy₁ + y₁² - d₁² = x² - 2xx₂ + x₂² + y² - 2yy₂ + y₂² - d₂²
x² - 2xx₁ + x₁² + y² - 2yy₁ + y₁² - d₁² - x² + 2xx₂ - x₂² - y² + 2yy₂ - y₂² + d₂² = 0
(x² - x²) - 2xx₁ + x₁² + (y² - y²) - 2yy₁ + y₁² - d₁² + 2xx₂ - x₂² + 2yy₂ - y₂² + d₂² = 0
- 2xx₁ - 2yy₁ + 2xx₂ + 2yy₂ = d₁² - d₂² - x₁² - y₁² + x₂² + y₂²
x(-2x₁ + 2x₂) + y(-2y₁ + 2y₂) = d₁² - d₂² - x₁² - y₁² + x₂² + y₂²
y = (d₁² - d₂² - x₁² - y₁² + x₂² + y₂² - x(-2x₁ + 2x₂)) / (-2y₁ + 2y₂)
将其替换为两个原始方程中的任何一个:
(x - x₁)² + (y - y₁)² = d₁²
(x - x₁)² + ((d₁² - d₂² - x₁² - y₁² + x₂² + y₂² - x(-2x₁ + 2x₂)) / (-2y₁ + 2y₂) - y₁)² = d₁²
展开后,您将在x 上得到一个二次方程,因为它是句子中的唯一变量。求方程的两个结果x'和x''。
对A 和C 执行相同的操作,并找到两个结果点x''' 和x''''。
将前两个结果点与后两个结果点进行比较。
if(x' == x''') xᵣ = x'
if(x' == x'''') xᵣ = x'
if(x'' == x''') xᵣ = x''
if(x'' == x'''') xᵣ = x''
现在,让xᵣ 成为答案。我们知道P = (xᵣ, yᵣ)。要找到yᵣ,只需取两个原始方程并将x 替换为xᵣ。您将有两个二次方程,其中y 是变量,结果为y'、y''(来自第一个)和y'''、y''''(来自第二个)。
if(y' == y''') yᵣ = y'
if(y' == y'''') yᵣ = y'
if(y'' == y''') yᵣ = y''
if(y'' == y'''') yᵣ = y''
最后,你有你的P = (xᵣ, yᵣ)。