明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1859|回复: 8

[求助]求交点!!!

[复制链接]
发表于 2005-11-5 15:09:00 | 显示全部楼层 |阅读模式
不在同一个平面的两条直线,怎么才能找到它们的“交点(就是移动到同一平面上的那个交点)”??,要求:除了把它们移到同一个平面上,还要怎么求??
发表于 2005-11-7 08:42:00 | 显示全部楼层
把它们的坐标取出来,用数学的方法求!
发表于 2005-11-7 11:35:00 | 显示全部楼层

先把线化成 L1:ax+by=c ; L2:a2x+b2y=c2,
然后套入二元一次线性方程式求解,
求出来的答案,就是它的交点了。
要注意的是,有可能是平行线,
所以在求解之前,要先算一下斜率。

发表于 2005-11-7 16:01:00 | 显示全部楼层

同3楼的思路,VB6的代码

Function LL_Inter(ByRef List1() As Double, ByVal p1 As Variant, ByVal p2 As Variant, Optional ByVal p3 As Variant, _
                Optional ByVal p4 As Variant) As Variant
   
    Dim Line1(0 To 2) As Double
    Dim Line2(0 To 2) As Double
    If TypeName(p4) = "Error" Then
        If TypeName(p3) = "Error" Then
            Line1(0) = p1(0)
            Line1(1) = p1(1)
            Line1(2) = p1(2)
            Line2(0) = p2(0)
            Line2(1) = p2(1)
            Line2(2) = p2(2)
        Else
            Line_Equation Line1, p1, p2
            Line_Equation Line2, p2, p3
        End If
    Else
        Line_Equation Line1, p1, p2
        Line_Equation Line2, p3, p4
    End If
    Dim dlt As Double
    Dim DltX As Double
    Dim DltY As Double
    dlt = Line1(0) * Line2(1) - Line2(0) * Line1(1)
    DltX = Line1(2) * Line2(1) - Line2(2) * Line1(1)
    DltY = Line1(0) * Line2(2) - Line2(0) - Line1(2)
    If Abs(dlt) < 0.000000001 Then
        If Abs(DltX) < 0.0000001 And Abs(DltY) < 0.0000001 Then
            LL_Inter = -1
        Else
            LL_Inter = -2
        End If
    Else
        LL_Inter = 0
        'List1(0) = -DltX / Dlt
        'List1(1) = -DltY / Dlt
        List1(1) = (Line1(0) * Line2(2) - Line2(0) * Line1(2)) / (Line2(0) * Line1(1) - Line1(0) * Line2(1))
        List1(0) = (Line1(1) * Line2(2) - Line2(1) * Line1(2)) / (Line2(1) * Line1(0) - Line1(1) * Line2(0))
    End If
End Function

Sub Line_Equation(ByRef LParam() As Double, ByVal p1 As Variant, ByVal p2 As Variant)
    LParam(0) = p2(1) - p1(1)
    LParam(1) = p1(0) - p2(0)
    LParam(2) = -1# * LParam(0) * p1(0) - LParam(1) * p1(1)
End Sub

 楼主| 发表于 2005-11-8 10:34:00 | 显示全部楼层
非常感谢!
发表于 2005-11-8 22:56:00 | 显示全部楼层
没看懂,,
发表于 2005-12-15 15:08:00 | 显示全部楼层
谢谢!..........
发表于 2005-12-26 10:06:00 | 显示全部楼层

假如是无法建立数学方程的曲线qline,和直线zline 相交呢?

vb还又没有办法?

发表于 2005-12-26 14:55:00 | 显示全部楼层

请问什么是无法建立数学方程的曲线?规则的曲线都有方程的吧?

如果曲线不规则,怎么知道它的趋势?怎么求交点?

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

本版积分规则

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

GMT+8, 2024-11-27 08:45 , Processed in 0.183639 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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