乐筑天下

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

[编程交流] GRREAD getpoint窗口

[复制链接]

62

主题

466

帖子

404

银币

后起之秀

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

铜币
310
发表于 2022-7-6 10:26:23 | 显示全部楼层 |阅读模式
这可能不正确。。我正在努力
  1. (setq p1 (getpoint))
  2. (setq p2 (getpoint ;;window from p1;)

 
有道理?
回复

使用道具 举报

4

主题

940

帖子

961

银币

初来乍到

Rank: 1

铜币
12
发表于 2022-7-6 10:43:12 | 显示全部楼层
  1. (setq p1 (getpoint "Pick first point: "))
  2. (setq p2 (getcorner p1 "Pick corner: "))
回复

使用道具 举报

62

主题

466

帖子

404

银币

后起之秀

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

铜币
310
发表于 2022-7-6 10:50:22 | 显示全部楼层
我完全忘记了getcorner
谢谢
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:04:14 | 显示全部楼层
只是为了好玩。。。
 
  1. (defun _grCorner (pt / foo gr)
  2. ;; Alan J. Thomspon, 09.20.10
  3. (defun foo (p1 p2)
  4.    (redraw)
  5.    (if (apply 'and (mapcar 'vl-consp (list p1 p2)))
  6.      ((lambda (l d)
  7.         (mapcar '(lambda (a b) (and a b (grdraw a b 7 d))) l (append (cdr l) (list (last l))))
  8.       )
  9.        (list p1 (list (car p2) (cadr p1)) p2 (list (car p1) (cadr p2)) p1)
  10.        (cond ((> (car p1) (car p2)) 1)
  11.              (0)
  12.        )
  13.      )
  14.    )
  15. )
  16. (if (vl-consp pt)
  17.    (progn (while (eq 5 (car (setq gr (grread T 15 1)))) (foo pt (cadr gr)))
  18.           (redraw)
  19.           (cond ((eq 3 (car gr)) (cadr gr)))
  20.    )
  21. )
  22. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:08:32 | 显示全部楼层
一些时髦的角落踢
 
  1. (defun LM:FunkyGrCorner ( p1 / g )
  2. (while (= 5 (car (setq g (grread 't 13 0)))) (redraw)
  3.    (
  4.      (lambda ( p1 p2 p3 p4 h xa x )
  5.        (mapcar '(lambda ( from to ) (grdraw from to -1 h)) (list p1 p2 p3 p4) (list p2 p3 p4 p1))
  6.        (mapcar '(lambda ( from ax ) (LM:grCornerpiece from (+ ax xa (/ (* x 5 pi) 4.)) 8 3))
  7.          (list p1 p2 p3 p4)
  8.          (list (angle p1 p2) (angle p2 p3) (angle p3 p4) (angle p4 p1))
  9.        )
  10.      )
  11.      p1 (list (caadr g) (cadr p1)) (cadr g) (list (car p1) (cadadr g))
  12.      
  13.      (if (< (car p1) (caadr g)) 0 1)
  14.      
  15.      (angle '(0. 0. 0.) (trans (getvar 'ucsxdir) 0 (trans '(0. 0. 1.) 1 0 t) t))
  16.      
  17.      (if (or (and (< (caadr g) (car p1)) (< (cadr p1) (cadadr g)))
  18.              (and (< (car p1) (caadr g)) (< (cadadr g) (cadr p1)))) -1 1)
  19.    )
  20. )
  21. (redraw) (if (listp (cadr g)) (cadr g))
  22. )
  23. (defun LM:grCornerpiece ( p a s c / -s lst r )
  24. ;; © Lee Mac 2010
  25. (setq -s (- s) lst
  26.    (list
  27.      (list -s -s)      (list  0.  0.)
  28.      (list (1+ -s) -s) (list  0. -1.)
  29.      (list -s (1+ -s)) (list -1.  0.)
  30.      (list -s s)       (list  0.  0.)
  31.      (list (1+ -s) s)  (list  0.  1.)
  32.      (list -s (1- s))  (list -1.  0.)
  33.      (list -s -s)      (list -s   s )
  34.      (list (1+ -s) -s) (list (1+ -s) s)
  35.      (list -s (1+ -s)) (list -s (1- s))
  36.    )
  37. )
  38. (setq r (/ (getvar 'VIEWSIZE) (cadr (getvar 'SCREENSIZE))) p (trans p 1 3))
  39. (grvecs (cons c (LM:RotatePointsbyMatrix lst '(0. 0. 0.) a))
  40.    (list
  41.      (list r  0. 0. (car  p))
  42.      (list 0. r  0. (cadr p))
  43.      (list 0. 0. r  0.)
  44.      (list 0. 0. 0. 1.)
  45.    )
  46. )
  47. )
  48. ;;--------------=={ Rotate Points by Matrix }==---------------;;
  49. ;;                                                            ;;
  50. ;;  Performs a Rotation transformation on a list of points    ;;
  51. ;;------------------------------------------------------------;;
  52. ;;  Author: Lee McDonnell, 2010                               ;;
  53. ;;                                                            ;;
  54. ;;  Copyright © 2010 by Lee McDonnell, All Rights Reserved.   ;;
  55. ;;  Contact: Lee Mac @ TheSwamp.org, CADTutor.net             ;;
  56. ;;------------------------------------------------------------;;
  57. ;;  Arguments:                                                ;;
  58. ;;  PointList - list of points to be rotated                  ;;
  59. ;;  BasePoint - base point for rotation (in CS of PointList)  ;;
  60. ;;  rAngle    - angle of rotation                             ;;
  61. ;;------------------------------------------------------------;;
  62. (defun LM:RotatePointsByMatrix ( PointList BasePoint rAngle )
  63. ;; © Lee Mac 2010
  64. (
  65.    (lambda ( Matrix / BaseVector )
  66.      (setq BaseVector (mapcar '- BasePoint (mxv Matrix BasePoint)))
  67.      (mapcar '(lambda ( point ) (mapcar '+ (mxv Matrix point) BaseVector)) PointList)
  68.    )
  69.    (list
  70.      (list (cos rAngle) (sin (- rAngle)) 0.0)
  71.      (list (sin rAngle) (cos rAngle)     0.0)
  72.      (list     0.0            0.0        1.0)
  73.    )
  74. )
  75. )
  76. (defun mxv ( m v )
  77. (mapcar '(lambda ( r ) (apply '+ (mapcar '* r v))) m)
  78. )
回复

使用道具 举报

55

主题

133

帖子

78

银币

后起之秀

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

铜币
280
发表于 2022-7-6 11:17:23 | 显示全部楼层
尊敬的李:,
 
你是怎么想的?。。。你的代码让我很兴奋。。。
 
坚持下去。。
 
当做
穆图
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:33:00 | 显示全部楼层
谢谢Muthu
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-5 14:15 , Processed in 0.715189 second(s), 77 queries .

© 2020-2025 乐筑天下

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