明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3161|回复: 0

如何绘制河道中心线

[复制链接]
发表于 2008-6-23 10:06 | 显示全部楼层 |阅读模式

想用lisp语言写一个自动绘制河道中心线的小程序(河道水边线为两条多段线)

在网上没找到相关的一些参考,在这里把自己的想法写出来,望高手指点算法这块.

目标:获取第一条水边线(PL1)顶点到第二条水边线边(PL2)的垂线中点或连线中点,各中点的连线既作为河道中心线.

步骤:

1\取两条水边线的起点直接连接取中点,作为河道中心线的起点,置于中心线顶点列表(ML)

2\获取PL1的第i个顶点pt(初始i为2),是最后一点则跳到步骤6

3\求pt到PL2各线段的垂足f,如f不为空且垂足到顶点pt的连线与两条水边线各只有一个交点,则将垂足f置于列表list,

4\计算列表list中最小垂线min1(顶点pt到垂足f),计算pt到PL2的最短连线min2,列表list为空或min1>min2,则取min2的中点作为顶点pt对应的河道中心线顶点置于顶点列表(ML),min1<min2,则取min1的中点作为顶点pt对应的河道中心线顶点置于顶点列表(ML)

5\获取PL1下一个顶点(i累加1),返回步骤2

6\取两条水边线的终点直接连接取中点,作为河道中心线的终点,置于中心线顶点列表(ML)

7\pline绘制列表ML

在河道转弯、宽度突变等特殊情况下,上面思路绘制时会出现问题,希望高手在算法上给于帮助,谢谢

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-17 16:58 , Processed in 0.209448 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表