明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2237|回复: 9

[提问] 【求助】三维实体的投影二维轮廓(算法原理)

[复制链接]
发表于 2015-5-3 08:12:37 | 显示全部楼层 |阅读模式
三维实体的投影二维轮廓(算法原理)
求助一个算法,已知三维实体的各个面的轮廓点。求出它的投影轮廓。
也就是:已知三维轮廓点的List,求出投影二维轮廓的算法原理。
本该在算法板块发的,在这发帖是因为看Lisp板块比较活跃,关键是不少算法高手在此。
图示以正方体为例:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2015-5-3 08:54:23 | 显示全部楼层
只是求点的投影还是很方便的,但如果你要求外轮廓就不是那么容易了。

.net里可以用Point3d的Convert2d方法,
lisp可以研究一下trans函数,坛子里有专门的文章介绍这个函数。
发表于 2015-5-3 09:37:03 | 显示全部楼层
点到平面的投影 Point3d.OrthoProject
 楼主| 发表于 2015-5-3 09:41:25 | 显示全部楼层
主要是求外轮廓
发表于 2015-5-3 09:46:32 | 显示全部楼层
command slice
发表于 2015-5-3 09:56:41 | 显示全部楼层
论坛里的高飞鸟讨论过这个问题  黄工已经给出了源代码.
具体思路是根据物体的矩阵.先转换回世界坐标系.  获取get~~bpx之后
在转回原来的位置. 实现求得外框.
 楼主| 发表于 2015-5-3 10:46:27 | 显示全部楼层
本帖最后由 EL_JAY 于 2015-5-3 11:06 编辑

精确外轮廓,不是要外框。不知道这么理解对不对?
主要是三维实体的面轮廓投影后有点,线,面 三个情况,去掉点,线,利用面域合并。
可以实现轮廓。因为我会是CAD之外用,不能用面域合并。看看高手们有没有好的算法

发表于 2015-5-4 09:51:43 | 显示全部楼层
加载XLRX_API:
  1. (defun c:tt ()
  2.   (setq e (car (entsel "\n选择三维实体:")))
  3.   (xlrx-copy e)
  4.   (setq s (xlrx-explode e))
  5.   (setq s (xlrx-region->poly s))
  6.   (setq s (XLRX-Curve-GetOutPoly s))
  7.   (setq pt (getpoint "\n基点:"))
  8.   (if (null pt)
  9.     (setq pt (getvar 'lastpoint))
  10.   )
  11.   (xlrx-move s
  12.              (trans pt 1 0)
  13.              (trans (getpoint pt "\n位置点:") 1 0)
  14.   )
  15.   (princ)
  16. )
发表于 2015-5-4 15:03:24 | 显示全部楼层
极少用CAD整3维
发表于 2020-8-21 01:02:21 | 显示全部楼层
谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-20 09:26 , Processed in 0.194948 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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