乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 164|回复: 12

C# - 查找 3 个或更多点之间的测量点?

[复制链接]

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2015-8-15 15:18:12 | 显示全部楼层 |阅读模式
首先,我必须声明,我的数学技能不是他们所能达到的……我上一节课是1975年的高中三年级,我参加了两个大学微积分课,然后我才决定我所做的事情太离谱了。话虽如此,我希望这个问题能在不太伤我大脑的情况下得到解决。我在StackExchange上找到了一些相关的消息/回复。
http://math.stackexchange.com/questions/366894/closest-point-to-3-or-more-circles
这是一个很好的例子http://math.stackexchange.com/questions/710547/solving-multivariate-polynomial-to-find-closest-point-to-a-3-or-more-circles?lq=1
但我不知道如何应用这些回答
让我解释一下我的目标:测量员定位3-6个或更多的已知点。这些点中的每一个都有到无法访问以进行测量的点的测量距离。我需要找到该点的最佳位置。现在,如果用距离每个点的测量距离绘制一个圆,并且所有圆都相交,那幺这很容易通过使用所有圆的最近交点的平均值来解决。然而,无法保证圆会相交,因为测量通常是用卷尺进行的。我想,这意味着我需要使用上面链接中显示的方程。除了,我不知道如何应用它们,如何使用它们,如何用C#编写它们。有人想启发我吗
这里是一个查找位置所需的示例,除了通常没有给出测量距离的方向:

5hkpjzfhmuq.png

5hkpjzfhmuq.png

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2015-8-15 17:52:52 | 显示全部楼层

我在这方面取得了一些成功:
http://www.codeproject.com/Articles/30615/Converting-math-equations-to-C
我确实需要在最后稍微整理一下方程,但不是太多。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2015-8-15 19:34:47 | 显示全部楼层
谢谢,外星人。不知道我需要做什么才能正确复制单词方程式。我对Word选项进行了编辑,但当我复制到剪贴板时,我仍然只得到表达式,而不是MathML。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2015-8-15 20:16:45 | 显示全部楼层
嗨,杰夫,我不太确定我是否完全理解了目标,但是对于任何几何学的东西,我都喜欢把它分解成三角形。圆形和三角形是基本的构建块,实际上,要在代码中创建这些更高级别的函数,您需要将复杂的公式分解为较低级别的基本向量。
无论如何,如果可以的话,试着把它分解成三角形和基本三角形,它可能不那么优雅,但是一旦你得到较低的部分,你可以将这些部分优化成更复杂的函数,以达到更高层次的等效项,因为你的理解提高了。
hth
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2015-8-15 20:45:03 | 显示全部楼层
嗨,杰夫,
我需要将问题视为“已知”和“必需”...我的头目前以这种方式工作...
我的数学硕士(在63年)曾经说过:“世界是简单的男孩;一切都简化为圆形和三角形。
英语大师曾经说过不同,但那是另一回事了。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2015-8-15 23:02:15 | 显示全部楼层
米克,克里——这是我用过的方法,我有一个使用圆和三角形的基本可行版本。只有当已知点的测量距离不等于这些点之间的距离时,它才会下降,所以没有相交的圆。这通常不是问题,但我正在努力解释这100个案例中的1个。明天我会试着用图形来更好地解释。我今天已经研究了大约10个小时,我的大脑需要休息一下。
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2015-8-16 03:14:38 | 显示全部楼层

复制和粘贴是Word的痛苦...不得不添加选项卡,然后更改设置...如果方程式没有很好地放在方程式框中,就很难工作。希望有人能提供更好的解决方案。
回复

使用道具 举报

24

主题

204

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
300
发表于 2015-8-17 08:05:50 | 显示全部楼层
创建圆圈重叠的区域。 如果该区域为空,则它们在确切点处重叠,您可以通过所有圆的最近交点的平均值找到该点。 如果该区域不为空,则可以使用该区域的质量中心作为最近的参考点。
回复

使用道具 举报

24

主题

204

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
300
发表于 2015-8-17 09:38:27 | 显示全部楼层
顺便说一句,今天是基恩的博客。
http://through-the-interface.typepad.com/through_the_interface/2015/08/getting-the-centroid-of-an-autocad-region-using-net.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+typepad%2Fwalmsleyk%2通过接口+%28通过+接口%29
回复

使用道具 举报

7

主题

46

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
74
发表于 2015-8-17 09:40:08 | 显示全部楼层
杰夫,不知道这是不是你想要的。它需要一组点,并给出一个非常接近所有点中心的点。它在Autolisp中,但它可能会给你一些想法。;3/13/03。
;乔·伯克。
;欧特克论坛。
;。
(defun AveragePts (ptlist)。
(if (null (caddr (car ptlist)))); 测试 2D 点的第一个点。
(setq ptlist (mapcar '(lambda (x) (append x '(0.0))) ptlist))。
)。
(mapcar '(lambda (ord)(/ ord (length ptlist) 1.0))。
(列表。
(apply '+ (mapcar '(lambda (pt) (car pt)) ptlist))。
(apply '+ (mapcar '(lambda (pt) (cadr pt)) ptlist))。
(apply '+ (mapcar '(lambda (pt) (caddr pt)) ptlist))。
)。
)。
)。

回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 00:39 , Processed in 0.307427 second(s), 75 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表