明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: highflybird

[越飞越高] 圆锥曲线在AutoCAD的精确表达法

[复制链接]
 楼主| 发表于 2020-9-16 00:01:49 | 显示全部楼层
本帖最后由 highflybird 于 2020-9-16 00:21 编辑
chenmik 发表于 2020-9-15 22:42
请教版主:你在双曲线分析中所说:
经过计算,可知在点(2,sqrt(3))双曲线的切线斜率为2Xsqrt(3)/3,交 ...

斜率就是切线的斜率,也就是此点的导数。可以用微分公式求得。
至于权重,可以参考如下的链接:
https://zhuanlan.zhihu.com/p/50626506
还可以参考如下链接:
https://blog.csdn.net/deepsprings/article/details/107828889

发表于 2020-9-16 00:40:36 来自手机 | 显示全部楼层
感谢高飞大神分享,又学到知识了。
发表于 2020-9-16 07:55:54 来自手机 | 显示全部楼层
大神,已知两平面上各三点,能不能写一个两平面的交线函数,gu版主的api函数里面有写某个平面交线函数返回的是交线上的任意一点和单位向量,我就卡在求任意一点上面了
发表于 2020-9-16 18:31:57 | 显示全部楼层
纵横八方 发表于 2020-9-16 07:55
大神,已知两平面上各三点,能不能写一个两平面的交线函数,gu版主的api函数里面有写某个平面交线函数返回 ...

关于三点的空间平面方程可以参考如下链接:
https://mathworld.wolfram.com/Plane.html

平面和平面的交线见如下链接:
https://mathworld.wolfram.com/Plane-PlaneIntersection.html
或可以参考下列解析表达式。

本帖子中包含更多资源

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

x
发表于 2020-9-16 18:34:32 | 显示全部楼层
highflybir 发表于 2020-9-16 18:31
关于三点的空间平面方程可以参考如下链接:
https://mathworld.wolfram.com/Plane.html

其中如果A1B2-A2B1不为零的话,取z=0和z=1的时候求得x和y的值得到两点,便是直线方程的两点
否则换取y或者x。
发表于 2020-9-16 19:26:12 来自手机 | 显示全部楼层
要考虑z=0,1时候,无解,意识就是交线 平行于xy平面,或者平行于其他坐标轴,这个时候就讨论麻烦了
发表于 2020-9-16 19:52:14 | 显示全部楼层
纵横八方 发表于 2020-9-16 19:26
要考虑z=0,1时候,无解,意识就是交线 平行于xy平面,或者平行于其他坐标轴,这个时候就讨论麻烦了

这样就按照A1B2-A2B1的情况处理,我的回复中已经说明了,这时候就换一个
发表于 2020-9-16 20:16:33 来自手机 | 显示全部楼层
A1B2-A2B1只是判断两平面是否平行而已,并不是判断交线平行于xy平面或者其他坐标轴平面,而Z=0代入进去,x,y值却是有解的
发表于 2020-9-16 20:28:56 | 显示全部楼层
本帖最后由 highflybir 于 2020-9-16 21:04 编辑
纵横八方 发表于 2020-9-16 20:16
A1B2-A2B1只是判断两平面是否平行而已,并不是判断交线平行于xy平面或者其他坐标轴平面,而Z=0代入进去,x, ...

不是这样的,A1B2-A2B1不是判断两平面平行的,而是判断交线是否平行XY平面的。建议楼主另开帖子讨论,因为已经与本主题无关。
两平面平行的判定是 A1:B1:C1=A2:B2:C2。
发表于 2020-9-16 21:59:22 | 显示全部楼层
本帖最后由 纵横八方 于 2020-9-16 22:03 编辑
highflybir 发表于 2020-9-16 20:28
不是这样的,A1B2-A2B1不是判断两平面平行的,而是判断交线是否平行XY平面的。建议楼主另开帖子讨论,因 ...

;;;还是有BUG
(defun c:tt(/ a1 a2 b1 b2 c1 c2 d1 d2 e f g lst1 lst2 m n pt1 pt2 q u v x y z)
(setvar "cmdecho" 0)
(setq lst1 (APPLY 'PLANE:Equation_3P (setq ptlst1 (list (getpoint "\n第一点") (getpoint "\n第二点") (getpoint "\n第三点")))))
(setq lst2 (APPLY 'PLANE:Equation_3P (list (getpoint "\n第一点") (getpoint "\n第二点") (getpoint "\n第三点"))))
(setq A1 (CAR LST1) B1 (CADR LST1) C1 (CADDR LST1) D1 (CADDDR LST1))
(setq A2 (CAR LST2) B2 (CADR LST2) C2 (CADDR LST2) D2 (CADDDR LST2))
(setq u (list A1 B1 C1) v (list A2 B2 C2))
(setq pt2 (MAT:unit (MAT:vxv u v)))
(setq m (- (* A1 B2) (* A2 B1)))
(setq n (- (* A1 C2) (* A2 C1)))
(setq q (- (* B1 C2) (* B2 C1)))
(setq e (- (* B1 D2) (* B2 D1)))
(setq f  (- (* C2 D1) (* C1 D2)))
(setq g (- (* A1 D2) (* A2 D1)))
(if (/= m 0);平行于XY平面
(progn
(setq z (caddr (car ptlst1)))
(setq x (/ (+ (* q z) e) m) y (/ (+ (* n z) g) m))
(setq pt1 (list x y z))
)
(progn
(if (/= n 0);平行于XZ平面
(progn
(setq y (cadr (car ptlst1)))
(setq x (/ (+ (* q y) f) n) z (/ (+ (* m y) g) n))
(setq pt1 (list x y z))
)
(progn
(if (/= q 0);平行于YZ平面
(progn
(setq x (car (car ptlst1)))
(setq y (/ (+ (* n x) f) q) z (/ (- (* m x) e) q))
(setq pt1 (list x y z))
)
)
)
)
)
)
(entmake (list '(0 . "LINE") (cons 10 pt1) (cons 11 (mapcar '+ pt1 pt2)) (cons 62 2)))
(command "LENGTHEN" "dy" (entlast))
(princ)
)

点评

你程序写错了。要求出z=0和z=1时候的两点。  发表于 2020-9-17 00:52
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 09:26 , Processed in 0.182413 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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