先算出A1,A2之间的长度,按比例可求出 A3(X,Y)

解决方案 »

  1.   

    A2圆心,A3和A2的距离半径
    a1,a2 得直线上的交点就是a3
    代码,自写
      

  2.   

    哥们,把你的Email留下,我正在给你写代码以及数学公式说明。
    写好就发给你
      

  3.   

    我的E-MAIL是:[email protected]谢谢你哦,写好了发给我对了你有MSN或者OICQ吗?这样联系方便一点,谢谢
      

  4.   

    通过A1,A2求出斜率,由A2A3按角度得A3的坐标
      

  5.   

    Option ExplicitDim x1 As Single, y1 As Single   'A1的坐标值
    Dim x2 As Single, y2 As Single   'A2的坐标值
    Dim x3 As Single, y3 As Single   'A3的坐标值
    Dim Length23 As Single
    Private Sub GetResult(ByVal x1 As Single, ByVal y1 As Single, _
                          ByVal x2 As Single, ByVal y2 As Single, _
                          ByVal Length23 As Single)
    x3 = Sqr((x1 - x2) ^ 2 + (y1 - y2) ^ 2)
    If x3 = 0 Then
       MsgBox "除数为零,错误!"
       Exit Sub
    End If
    x3 = Length23 * (x2 - x1) / x3
    x3 = x3 + x2y3 = Sqr((x1 - x2) ^ 2 + (y1 - y2) ^ 2)
    If y3 = 0 Then
       MsgBox "除数为零,错误!"
       Exit Sub
    End If
    y3 = Length23 * (y2 - y1) / y3
    y3 = y3 + y2End Sub''测试按钮
    Private Sub Command1_Click()
    '''传入数据测试
    '''根据给定条件,可知第三点为(11,11)
    '''看看对不对 ^_^^_^^_^^_^^_^^_^^_^^_^^_^      ^_^
    '''要是不信,自己再多测几组数据
    x1 = 0
    y1 = 0
    x2 = 1
    y2 = 1
    Length23 = 10 * Sqr(2)Call GetResult(x1, y1, x2, y2, Length23)MsgBox "x3=" & x3 & " " & "y3=" & y3, , "对了吧?"End Sub
      

  6.   

    Length23为A2到A3的距离.
    补充
      

  7.   

    o,对了kingtw,你受到信了吗?
    如果没有,我再发给你啊
    不过好像我的分数还没有加……
      

  8.   

    太简单了:高中几何题先假设几个变量:Ax,Ay--A点的x,y坐标,同样:Bx,By,Cx,Cy就不多说了
    A2B--A到B的长度,B2C--B到C的长度先求a--b的长度:
    A2B = (By-Ay)^2/(Bx-Ax)+(Bx-Ax)根据比例,求出C点坐标
    Cx = (B2C/A2B+1)*(Bx-Ax)
    Cy = (B2C/A2B+1)*(By-Ay)
      

  9.   

    我觉得列一个方程即可以:设一直线方程为 y=ax+b
    将a1和a2的坐标带进去求出a,b的值
    然后再列一个等式,根据a2a3的距离
    最后求出x,y值即是a3的坐标.
      

  10.   

    具体求证方法,我是在纸上画了草图的,在这里讲不清
    总之:
    第一步:已知A,B两点坐标,求它们之间的距离
    第二步:C到B的水平距离(X坐标之差)跟B到A的水平距离的比例,等于他们长度之间的比例
    同样,Y坐标,也可根据比例很容易求出
      

  11.   

    Cx = (B2C/A2B+1)*(Bx-Ax)
    Cy = (B2C/A2B+1)*(By-Ay)嘿嘿,错了
    更正:Cx = B2C/A2B*(Bx-Ax)+Bx
    Cy = B2C/A2B*(By-Ay)+By
      

  12.   

    function ArcTan(byval x as single,byval y as single) as single 
        dim s as single
        s = Atn(X / Y) / 3.141592653576 * 180 + 90
        If Y > 0 Then s = s + 180
        ArcTan=s
    end functionFunction Sub GetP3(ByVal x1 As Single, ByVal y1 As Single, _
                          ByVal x2 As Single, ByVal y2 As Single, _
                          ByVal x3 As Single, ByVal y3 As Single, _
                          ByVal Length23 As Single)
        Dim r as single
        Dim th as Single
        Dim AllR as Single
        
        r=Sqrt((x2-x1)^2+(y2-y1)^2)
        AllR=r+Length23
        th=ArcTan(x2-x1,y2-y1)
        
        x3=x1+Cos(th)*AllR
        y3=y1+Sin(th)*AllR
        
    End Sub
      

  13.   

    写错了,是:
    Function Sub GetP3(ByVal x1 As Single, ByVal y1 As Single, _
                          ByVal x2 As Single, ByVal y2 As Single, _
                          ByRef x3 As Single, ByRef y3 As Single, _
                          ByVal Length23 As Single)
      

  14.   

    高中方法
    Private Sub Command1_Click()
    Dim X1 As Single, Y1 As Single
    Dim X2 As Single, Y2 As Single
    Dim X3 As Single, Y3 As Single
    Dim SS As Single  'A1 到 A2 的距离.
    Dim LL As Single  'A2 到 A3 的距离.
        X1 = 1000
        Y1 = 1000
        
        X2 = 2000
        Y2 = 2000
        
        LL = 1000
        
        SS = Sqr((Y2 - Y1) ^ 2 + (X2 - X1) ^ 2)
        
        Print "SS ="; SS
        
        X3 = (X2 - X1) * LL / SS + X2
        Y3 = (Y2 - Y1) * LL / SS + Y2
        
        Print "X3 ="; X3; "Y3 ="; Y3
        
        Line (X1, Y1)-(X3, Y3)
        DrawWidth = 3
        PSet (X1, Y1): Print "(X1, Y1)"
        PSet (X2, Y2): Print "(X2, Y2)"
        PSet (X3, Y3): Print "(X3, Y3)"
        DrawWidth = 1
        
    End Sub
      

  15.   

    Private Sub Command1_Click()
    Dim X1 As Single, Y1 As Single
    Dim X2 As Single, Y2 As Single
    Dim X3 As Single, Y3 As Single
    Dim SS As Single  'A1 到 A2 的距离.
    Dim LL As Single  'A2 到 A3 的距离.
        Cls
        Scale (-5000, 5000)-(5000, -5000)
        X1 = 1000
        Y1 = 1300
        
        X2 = 3000
        Y2 = 3000
        
        LL = 1000
        
        SS = Sqr((Y2 - Y1) ^ 2 + (X2 - X1) ^ 2)
        
        PSet (0, 0): Print "SS ="; SS
        
        X3 = (X2 - X1) * LL / SS + X2
        Y3 = (Y2 - Y1) * LL / SS + Y2
        
        Print "X3 ="; X3; "Y3 ="; Y3
        
        Line (X1, Y1)-(X3, Y3)
        DrawWidth = 3
        PSet (X1, Y1): Print "(X1, Y1)"
        PSet (X2, Y2): Print "(X2, Y2)"
        PSet (X3, Y3): Print "(X3, Y3)"
        DrawWidth = 1
        
    End Sub
      

  16.   

    zyl910(910:分儿,我来了!)的 极坐标 方法不错
        '建议用 Atn(1) * 4 代替 3.141592653576
        Print Atn(1) * 4
        Print 3.141592653576
      

  17.   

    直接定义一个常量:Private Const PI As Double = 3.141592653576Private Function ArcTan(Byval x as Single, Byval y as Single) As Single
        Dim s As Single
        s = Atn(X / Y) / PI * 180 + 90
        If y > 0 Then s = s + 180
        ArcTan=s
        
    End Function
      

  18.   

    写错了,应该是Sqr:r=Sqr((x2-x1)^2+(y2-y1)^2)
      

  19.   

    强啊。。不过你怎么老写错再改呢??HE HE:)