求不规则区域的边界点坐标

shao99 2016-02-18 10:57:03
加精
在画板上描绘了一个不规则闭合区间后,怎么样能知道哪些坐标点在这个闭合区间的边界上。
...全文
1061 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
shao99 2016-03-01
  • 打赏
  • 举报
回复
引用 18 楼 suiyunonghen 的回复:
知道了每个点坐标,然后根据每个点边直线,换算斜率,然后就可以判断点是否在这个直线上咯
试了下,感觉和直接绘制直线产生的点有区别,比直线上的点多。不知道是哪里错了。
不得闲 2016-02-24
  • 打赏
  • 举报
回复
知道了每个点坐标,然后根据每个点边直线,换算斜率,然后就可以判断点是否在这个直线上咯
赵4老师 2016-02-22
  • 打赏
  • 举报
回复
schlafenhamster 2016-02-19
  • 打赏
  • 举报
回复
"lpPoints只是几个线段的端点。" 2个线段 可能是 同斜率 的 一个 线段 “线段上的那些点找不到” 由 线段 的 方程 确定。
shao99 2016-02-19
  • 打赏
  • 举报
回复
引用 13 楼 schlafenhamster 的回复:
lpPoints 属于的点 可能 是 交点 或者 在 lpPoints 连接的 某 直线 上
lpPoints只是几个线段的端点。 线段上的那些点找不到。
shao99 2016-02-19
  • 打赏
  • 举报
回复
引用 15 楼 schlafenhamster 的回复:
"lpPoints只是几个线段的端点。" 2个线段 可能是 同斜率 的 一个 线段 “线段上的那些点找不到” 由 线段 的 方程 确定。
试了一下,这个浮点数比较阈值不太好弄,算出来的点要不有缺失,要不就有多余
boylafong 2016-02-18
  • 打赏
  • 举报
回复
CreatePolygonRgn的参数是点数组 判断点是否在每连续的2个点的线段上 比如你的点是A B C D E F G.... 是否在AB线段上 是否在BC线段上 。。。。
zgl7903 2016-02-18
  • 打赏
  • 举报
回复
BeginPath, EndPath, 记录路径 CRgn::CreateFromPath 创建 CRgn CRgn::PtInRegion 判断是否在区域内
schlafenhamster 2016-02-18
  • 打赏
  • 举报
回复
BOOL CreatePolyPolygonRgn( LPPOINT lpPoints, LPINT lpPolyCounts, int nCount, int nPolyFillMode ); 检测 点 是不是 在 lpPoints 形成的 直线上
shao99 2016-02-18
  • 打赏
  • 举报
回复
引用 1 楼 shenyi0106 的回复:
提供一个思路: 能不能把你的不规则闭合区域分段,分成若干个可以用线性方程表达的方程式,然后在确定这些点是否在这些若干个线程方程中
我是创建了一个CRgn对象,通过CreatePolygonRgn()取得不规则闭合区域的对象,但是边界点就不知道怎么弄了。
shenyi0106 2016-02-18
  • 打赏
  • 举报
回复
提供一个思路: 能不能把你的不规则闭合区域分段,分成若干个可以用线性方程表达的方程式,然后在确定这些点是否在这些若干个线程方程中
schlafenhamster 2016-02-18
  • 打赏
  • 举报
回复
lpPoints 属于的点 可能 是 交点 或者 在 lpPoints 连接的 某 直线 上
schlafenhamster 2016-02-18
  • 打赏
  • 举报
回复
"哪些坐标点在这个闭合区间的边界上" ? lpPoints 属于的点 都在 边界 上
schlafenhamster 2016-02-18
  • 打赏
  • 举报
回复

/***********************************************************************
vDistFromPointToLine:
	The function vDistFromPointToLine computes the distance from the point 
	ptTest to the line defined by endpoints pt0 and pt1. This is done by 
	resolving the the vector from pt0 to ptTest into its components. The 
	length of the component vector that is attached to the head of the 
	vector from pt0 to ptTest is the distance of ptTest from the line.
Parameters:
	pt0    A pointer to a POINT structure containing the first endpoint of the 
		   line.
	pt1	   A pointer to a POINT structure containing the second endpoint of the 
		   line.
	ptTest A pointer to a POINT structure containing the point for which the 
		   distance from the line is to be computed.
Return value:
		A double value that contains the distance of ptTest to the line defined 
		by the endpoints pt0 and pt1.
HISTORY    : - created - denniscr
************************************************************************/
double  vDistFromPointToLine(LPPOINT pt0, LPPOINT pt1, LPPOINT ptTest)
{
	VECTOR2D ttLine, ttTest;
	PROJECTION pProjection;
	
	POINTS2VECTOR2D(*pt0, *pt1, ttLine);
	POINTS2VECTOR2D(*pt0, *ptTest, ttTest);
	
	vProjectAndResolve(&ttTest, &ttLine, &pProjection);
	
	return(pProjection.LenPerpProjection);
}
Distance=0 (abs <=1) 就是 在线上
boylafong 2016-02-18
  • 打赏
  • 举报
回复
引用 6 楼 shao99 的回复:
[quote=引用 5 楼 boylafong 的回复:] CreatePolygonRgn的参数是点数组 判断点是否在每连续的2个点的线段上 比如你的点是A B C D E F G.... 是否在AB线段上 是否在BC线段上 。。。。
是的,我也是这么想的,可就是不知道怎么判断是否在AB,BC上[/quote] 判断点是否在线段上你不知道判断的吗?网上一大把呢
boylafong 2016-02-18
  • 打赏
  • 举报
回复
引用 8 楼 shao99 的回复:
[quote=引用 5 楼 boylafong 的回复:] CreatePolygonRgn的参数是点数组 判断点是否在每连续的2个点的线段上 比如你的点是A B C D E F G.... 是否在AB线段上 是否在BC线段上 。。。。
要获取所有边界点的话,这个速度太慢[/quote] 怎么会慢呢?1W个点不超过1毫秒
shao99 2016-02-18
  • 打赏
  • 举报
回复
引用 5 楼 boylafong 的回复:
CreatePolygonRgn的参数是点数组 判断点是否在每连续的2个点的线段上 比如你的点是A B C D E F G.... 是否在AB线段上 是否在BC线段上 。。。。
要获取所有边界点的话,这个速度太慢
shao99 2016-02-18
  • 打赏
  • 举报
回复
引用 4 楼 zgl7903 的回复:
BeginPath, EndPath, 记录路径 CRgn::CreateFromPath 创建 CRgn CRgn::PtInRegion 判断是否在区域内
有稍微详细点的例子吗
shao99 2016-02-18
  • 打赏
  • 举报
回复
引用 5 楼 boylafong 的回复:
CreatePolygonRgn的参数是点数组 判断点是否在每连续的2个点的线段上 比如你的点是A B C D E F G.... 是否在AB线段上 是否在BC线段上 。。。。
是的,我也是这么想的,可就是不知道怎么判断是否在AB,BC上

19,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧