热情软件屋

 

怎么判断一点是否在一个不规则的封闭的区域里


编号:QA003779
建立日期: 2001年1月17日 最后修改日期:2001年1月17日
所属类别:

千年虫:
    操作系统:windows X
    编程工具:vb6
    问题:1.怎样记录一个不规则的图形的路径?一个封闭的不规则的图形的边界怎么记录,主要想实现对该区域重画和填充颜色。
    2.怎么判断一点是否在一个不规则的封闭的区域里。希望高手能帮帮忙。
    水平: 中级

回答:

    zhangyang的意见:
    我想图形学的知识可以解决这个问题:
    1、可以使用把方向的矢量记录边界。分别可用8个数代表8个方向。而下一个点即是方向所指的点。
    2、如果知道多边形的几个顶点,可以使用边线法(详见图形学),但是如果没有规则的话,或许可以使用填充法中的种子法。
    希望会对你有帮助。
    
    ljlearn的意见:
    vb我不懂,但用C++ Builder成功实现。
    1、建立一个链表,按顺序记录该封闭图形的所有拐点座标,重画时即可读进拐点座标作 LineTo(x1,y1),LineTo(x2,y2)。
    2、填充有多种方法,低层的可用扫描线算法、种子算法等。最简单的可用 WinAPI函数 FloodFill , ExtFloodFill。
    3、对于第二问,可在实现第一问的基础上,作如下判断:一、考虑多边形的一条边以及延长线构成的裁剪线。该线把平面分成两个部分,判断该点在线的哪一边。二、重复直到所有边的判断完成。

此问题由zhangyang等回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio