【问题标题】:drawing point depend on it is distance from triangle vertices绘图点取决于它与三角形顶点的距离
【发布时间】:2020-07-07 03:26:48
【问题描述】:

我使用的是 Android,我需要使用距三角形顶点的给定距离来绘制一个点,例如:

example

我有三个明确定义的点 (A,B,C) 我想使用android使用三个给定值(AP,BP,CP)绘制P点。 非常感谢。

【问题讨论】:

  • 如何在程序中定义一个点?这是一个三边测量的问题,并且有众所周知的解决方案,只需按照程序所需的术语编写它们即可en.wikipedia.org/wiki/…
  • 一般来说,你不能。三个任意距离不定义一个点。两个距离可以定义它,然后第三个距离被浇筑在混凝土中。你的given distances 来自哪里?
  • 你需要解方程组(x1-x)*(x1-x)+(y1-y)*(y1-y)=d1*d1等,解法有点麻烦。您取 eq1,计算与 eq2 的差,使 xx 和 yy 抵消,然后在第一个方程中使用该等式获得 2 分,然后使用 eq 3 或简单地检查女巫两种解决方案中的一种满足 d3。也许检查互联网的明确解决方案

标签: java android algorithm


【解决方案1】:

这是一道纯数学题。假设你的三角形有这些点和到 P 的距离:

A = (x₁, y₁)    |A - P| = d₁
B = (x₂, y₂)    |B - P| = d₂
C = (x₃, y₃)    |C - P| = d₃

首先,取AB 以及它们的圆方程:

(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''

AC 执行相同的操作,并找到两个结果点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ᵣ)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 2015-05-27
    • 2021-09-14
    • 2012-10-31
    相关资源
    最近更新 更多