乐筑天下

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

[编程交流] 在一个点中找到两个匹配点

[复制链接]

2

主题

7

帖子

5

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 22:15:05 | 显示全部楼层 |阅读模式
你好
 
我们如何在点集合中找到两个匹配点?
以下代码工作不正常。
 
Point2dCollection colPt=new Point2dCollection();
字符串sDoubleVertex=“”;
 
对于(int nCnt1=0;nCnt1
{
对于(int nCnt2=0;nCnt2
{
//进入下一个迭代。
如果(nCnt1==nCnt2)继续;
if((colPt[nCnt1].X.ToString()==colPt[nCnt2]。十、 ToString())&&
(colPt[nCnt2].Y.ToString()==colPt[nCnt2]。Y、 ToString()))
{
sDoubleVertex=nCnt2。ToString()+“,”+sDoubleVertex;
}
}
}
 
非常感谢。
莫森
回复

使用道具 举报

12

主题

175

帖子

77

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
149
发表于 2022-7-6 22:47:05 | 显示全部楼层
 
我使用VBA,所以我只是猜测你的问题可能是什么样子。
可能是因为使用了字符串值之间的比较,而不是双值之间的比较。
 
然而,根据我的经验,即使使用双值比较,我也总是发现自己被迫对数字进行四舍五入,以获得符合我需要的匹配。
例如,在VBA中,我使用如下表达式
  1. if (Round(minExt(0), 5) = Round(maxExt(0), 5)) and (Round(minExt(1), 5) = Round(maxExt(1), 5)) then

因此声明我对逗号后最多5位数字的匹配感到满意。
您可以要求更精确的匹配,但首先检查每个数字变量类型的内部精度,以避免寻找不可能的匹配。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 23:29:31 | 显示全部楼层
Linq可以提供一种更方便的方法来执行所需的比较,但从线性角度考虑,可以简单地迭代集合,并将点2D及其索引与集合中的其他索引进行比较。
 
这也可以用于:
 
http://through-the-interface.typepad.com/through_the_interface/2011/01/sorting-an-autocad-point2dcollection-or-point3dcollection-using-net.html
 
干杯
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 11:20 , Processed in 0.686550 second(s), 58 queries .

© 2020-2025 乐筑天下

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