這兩個線型都不難,建議使用二元二次方程組就能搞定,用VB解二元二次方程組應(yīng)該會用吧。
創(chuàng)新互聯(lián)專注于中大型企業(yè)的成都網(wǎng)站建設(shè)、成都做網(wǎng)站和網(wǎng)站改版、網(wǎng)站營銷服務(wù),追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術(shù)與技術(shù)開發(fā)的融合,累計(jì)客戶成百上千家,服務(wù)滿意度達(dá)97%。幫助廣大客戶順利對接上互聯(lián)網(wǎng)浪潮,準(zhǔn)確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運(yùn)用,我們將一直專注成都品牌網(wǎng)站建設(shè)和互聯(lián)網(wǎng)程序開發(fā),在前進(jìn)的路上,與客戶一起成長!
Public Sub Lpp(x1#, y1#, x2#, y2#, a#, b#, c#) '兩點(diǎn)求直線
'輸入:直線上兩[端]點(diǎn)
'輸出:直線的一般式的參數(shù)a,b,c
a = y2 - y1
b = x1 - x2
c = -a * x1 - b * y1
End Sub
Public Sub Pll(a1#, b1#, c1#, a2#, b2#, c2#, x#, y#) '兩直線交點(diǎn)
'輸入:兩直線一般式的參數(shù)
'輸出:點(diǎn)的坐標(biāo),存于變量x,y中
dlt = a1 * b2 - a2 * b1
dx = c1 * b2 - c2 * b1
dy = a1 * c2 - a2 * c1
If (Abs(dlt) 0.0000000001) Then
If (Abs(dx) 0.0000000001 And Abs(dy 0.0000000001)) Then
x = 1E+20
y = 1E+20
Else
x = -1E+20
y = -1E+20
End If
Else
x = -dx / dlt
y = -dy / dlt
End If
End Sub
如圖,方法一,根據(jù)圓的半徑個位置寫出圓的方程,聯(lián)立求交點(diǎn),不過這種方法交點(diǎn)的最終表達(dá)式不容易推導(dǎo)
方法2,兩個圓的方程相減得到直線CD的方程,CD方程與AB方程聯(lián)立求出交點(diǎn)E,在以E為起始點(diǎn)寫CD的參數(shù)方程,參數(shù)方程的x,Y帶入任意一個圓中就能求出參數(shù)t,從而求出c?d的坐標(biāo)
不是已經(jīng)回答了嗎?
運(yùn)行界面如下圖:
在對應(yīng)的文本框里輸入對應(yīng)的坐標(biāo)值,單擊【計(jì)算】,結(jié)果將顯示在下面一個文本框里,完整代碼如下:
Public?Class?Form1
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
Dim?x2,?y2,?x3,?y3,?x4,?y4,?x5,?y5?As?Single
Dim?L?As?Single
x2?=?Val(TextBox2.Text)
y2?=?Val(TextBox3.Text)
x3?=?Val(TextBox4.Text)
y3?=?Val(TextBox5.Text)
x4?=?Val(TextBox6.Text)
y4?=?Val(TextBox7.Text)
'求點(diǎn)P3(x3,y3)與點(diǎn)P4(x4,y4)的直線方程;
'(X-x4)/(x3-x4)?=?(Y-y4)/(y3-y4)?......(1)
'求過點(diǎn)P2(x2,y2)的水平直線方程為;
'Y?=?y2?......(2)
'方程(1)(2)?聯(lián)立可以求出兩條直線的交點(diǎn)(x5,y5)
'由此得到交點(diǎn)坐標(biāo)為:
x5?=?(y2?-?y3)?*?(x4?-?x3)?/?(y4?-?y3)?+?x3
y5?=?y2
'求點(diǎn)P2(x2,y2)與點(diǎn)P5(x5,y5)之間的距離
'根據(jù)兩點(diǎn)之間距離公式有;
L?=?((x2?-?x5)?^?2?+?(y2?-?y5)?^?2)?^?0.5
TextBox1.Text?=?L
End?Sub
End?Class