gpt4 book ai didi

geometry - 找到重心权重具有特定值的点

转载 作者:行者123 更新时间:2023-12-04 02:02:14 25 4
gpt4 key购买 nike

我有三角形:a , b , c .每个顶点都有一个值:va , vb , vc .在我的软件中,用户拖动点 p在这个三角形的内部和外部。我使用重心坐标来确定值 vpp基于 va , vb , 和 vc .到现在为止还挺好。

现在我想限制p以便 vp在范围内 minmax .如果用户选择 p哪里vp是 < min或 > max , 如何找到最接近 p 的点哪里vp等于 minmax , 分别?

编辑:这是我测试每个点的示例。浅灰色以内min/max .我如何找到组成 min 的线的方程/max边界?

example

a = 200, 180
b = 300, 220
c = 300, 300
va = 1
vb = 1.4
vc = 3.2
min = 0.5
max = 3.5

编辑: FWIW,到目前为止,我首先得到了重心坐标 v , wp使用三角形顶点 a , b , c (我认为是标准的东西,但看起来像 this )。然后得到 vp :
u = 1 - w - v
vp = va * u + vb * w + vc * v

这一切都很好。我的问题是我需要 min 的线方程/ max所以我可以为 p 选择一个新职位当 vp超出范围。 p的新职位是最接近 p 的点在最小或最大线上。

请注意 p是 XY 坐标和 vp是由三角形和每个顶点处的值确定的坐标值。 minmax也是值(value)观。我需要的两条线方程将为我提供 XY 坐标,三角形确定的值为 minmax .

解中是否使用重心坐标并不重要。

最佳答案

诀窍是使用值与笛卡尔距离的比率来扩展每个三角形边缘,直到它达到最小值或最大值。用图片更容易看:

enter image description here

青色线显示三角形边缘的延伸方式,绿色 X 是最小或最大线上的点。仅通过这些点中的 2 个点,我们就知道直线的斜率。黄线显示​​连接 Xs 与浅灰色对齐。

数学是这样工作的,首先得到 vb 和 vc 之间的值距离:
valueDistBtoC = vc - vb

然后得到从 b 到 c 的笛卡尔距离:
cartesianDistBtoC = b.distance(c)

然后得到从 b 到 max 的值距离:
valueDistBtoMax = 最大值 - vb

现在我们可以交叉乘以得到从 b 到 max 的笛卡尔距离:
cartesianDistBtoMax = (valueDistBtoMax * cartesianDistBtoC)/valueDistBtoC

对 min 以及 a,b 和 c,a 执行相同的操作。 6点足以限制p的位置。

关于geometry - 找到重心权重具有特定值的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20271947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com