乐筑天下

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

请问如何过一点作一条直线的垂线

[复制链接]

51

主题

70

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
274
发表于 2011-9-23 17:09:00 | 显示全部楼层 |阅读模式
如题,如何过一个点作一条直线的垂线。谢谢。
回复

使用道具 举报

47

主题

398

帖子

10

银币

中流砥柱

Rank: 25

铜币
586
发表于 2011-9-23 20:08:00 | 显示全部楼层

程序如下。但该程序没有判断是否选取了直线和点,也就是说,没有错误处理
  1. (defun c:per(/ el sp dp ep dsp dep dse al pp spx spy dpx dpy epx epy ppx ppy)
  2.   (prompt "请选择直线:")
  3.   (setq el (car (entsel)));;;直线图元名
  4.   (setq sp (cdr (assoc 10 (entget el))));;;直线起点
  5.   (setq dp (cdr (assoc 11 (entget el))));;;直线终点
  6.   (prompt "请选择点:")
  7.   (setq ep (getpoint));;;已知点选取
  8.   (setq dsp (distance ep sp));;;直线起点到选取点距离
  9.   (setq dep (distance ep dp));;;直线终点到选取点距离
  10.   (setq dse (distance sp dp));;;直线长度
  11.   (if
  12.     (or
  13.       (= dsp (+ dep dse))
  14.       (= dep (+ dsp dse))
  15.       (= dse (+ dsp dep))
  16.     );;;判断
  17.     (princ "\n点位于直线上")
  18.     (progn
  19.       (setq spx (car sp) spy (cadr sp));;;直线起点xy坐标
  20.       (setq dpx (car dp) dpy (cadr dp));;;直线终点xy坐标
  21.       (setq al (- (angle (list spx spy)(list dpx dpy))(/ pi 2.0)));;;直线的垂线方向角
  22.       (if (vla-object el))
  23.       (if (setq ep (getpoint "\n请选择点:"))
  24.         (progn
  25.           (setq cp (vlax-curve-getClosestPointTo obj ep T))
  26.           (if (/= (distance ep cp) 0.0)
  27.             (entmake (list '(0 . "LINE")(cons 10 ep)(cons 11 cp)))
  28.             (princ "\n点位于直线上,三维无解")
  29.           )
  30.         )
  31.         (princ "\n未选取点")
  32.       )
  33.     )
  34.     (princ "\n未选取直线")
  35.   )
  36.   (princ)
  37. )
回复

使用道具 举报

1

主题

19

帖子

5

银币

初来乍到

Rank: 1

铜币
23
发表于 2011-9-23 20:53:00 | 显示全部楼层
新手学习了!!
回复

使用道具 举报

47

主题

398

帖子

10

银币

中流砥柱

Rank: 25

铜币
586
发表于 2011-9-23 21:30:00 | 显示全部楼层

如果直线外的那个点向直线作垂线时,垂足在延长线上,那么取最近点就不对了!!!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-15 17:36 , Processed in 0.336013 second(s), 60 queries .

© 2020-2025 乐筑天下

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