乐筑天下

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

[编程交流] Lee Mac-几何函数ex

[复制链接]

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 22:48:10 | 显示全部楼层 |阅读模式
你好
 
学习Lee的几何函数,从垂直-p()开始
 
什么是vxv,十进制1e-8的平均值是多少?
 
  1. ;; Perpendicular-p  -  Lee Mac
  2. ;; Returns T if vectors v1,v2 are perpendicular
  3. (defun LM:Perpendicular-p ( v1 v2 )
  4.    (equal 0.0 ([b][color="red"]vxv[/color][/b] v1 v2) [color="red"][b]1e-8[/b][/color])
  5. )
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-5 22:54:25 | 显示全部楼层
该函数表示2个向量的点积(与叉积相反)。李收藏:
  1. ;; Vector Dot Product  -  Lee Mac
  2. ;; Args: u,v - vectors in R^n
  3. (defun vxv ( u v )
  4.    (apply '+ (mapcar '* u v))
  5. )

1e-8是在-8处提出的10的科学记数法,用于简化此类数字的书写;其等效于:
  1. (expt 10.0 -
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 23:02:51 | 显示全部楼层
李Mac很好的编码风格简单但很有效!!
 
要达到他的水平还有很长的路要走
这里只是分享另一种方法
我的版本3线余弦
  1. (defun per-p (a b c fuzz)
  2. (equal ( / pi 2)
  3. ('((d )
  4.     (if
  5.       (equal (abs d) 1. 1e-16)
  6.      0.
  7.      (+ (* 2. (atan 1.)) (atan (/ d (sqrt (- 1. (* d d ))))) ); (* 2. (atan 1.))= (/ pi 2)
  8.      )
  9.     )
  10.    (/ (+ (* a a) (* b b) (-(* c c)))(* 2. a b))
  11.    )
  12. fuzz)
  13. ) ;_ end of defun
  14. (per-p 3. 4. 5. 1e-16); T

*删除编辑注释
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 23:07:45 | 显示全部楼层
你好
我总是按点处理实体,在这个函数中,预期的实体是向量,我该如何使用它?有人能举个例子吗?
 
谢谢
S
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 23:17:59 | 显示全部楼层
应用数学
面积公式:
|x1 x2 x3 x4 xn|
|     \/  \/  \/  \/  \/     |
|.    /\  /\  /\  /\  /\     |
|y1 y2 y3 y4 yn.|。1/2
 
  1. ;hanhphuc 07/07/2014
  2. (defun 2d-area (l)
  3. (abs
  4.    (/ (apply '-
  5.       (mapcar '(lambda (x y)
  6.    (vxv  ; sub function by LEE MAC
  7.      (mapcar '(eval x) l)
  8.      (mapcar '(eval y)
  9.       (append (cdr l) (list (car l)))
  10.      )
  11.    ) ;_ vxv
  12.         ) ;_ end of lambda
  13.        '(car cadr)
  14.        '(cadr car)
  15.       ) ;_ end of mapcar
  16.       ) ;_ end of apply
  17.       2.
  18.    ) ;_ end of /
  19.    
  20. );_ end of abs
  21. ) ;_ end of defun

 
;测试:
(2d区域'((0.0 0.0)(4.0 0.0)(4.0 3.0)))
;6
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 23:21:55 | 显示全部楼层
 
对不起,我还是不明白。。。能简单一点吗?
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 23:24:56 | 显示全部楼层
 
嗨,希望这有帮助?
 

                               
登录/注册后可看大图

 
如果我给你错了方向,请告诉我,谢谢
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 23:35:12 | 显示全部楼层
1e-8用于改进两个值的比较,其中一个值的小数位数较多,不返回true
 
V1=123.123
v2=123.12300003
v1不等于v2,但考虑到数量公差,它是。
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 23:42:08 | 显示全部楼层
 
感谢您的视觉解释,
 
vxv()比较3个给定坐标的x.y,然后乘和除它们的分量,以获得面积,太酷了!
 
但是它与向函数传递向量有什么关系呢?
 
谢谢
谢伊
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 23:42:41 | 显示全部楼层
有人吗?只需要知道如何将2个向量传递给Mac Lee的函数
 
  1. ;; Perpendicular-p  -  Lee Mac
  2. ;; Returns T if vectors v1,v2 are perpendicular
  3. (defun LM:Perpendicular-p ( v1 v2 )
  4.    (equal 0.0 (vxv v1 v2) 1e-
  5. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 03:10 , Processed in 0.378825 second(s), 75 queries .

© 2020-2025 乐筑天下

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