判断一点在一条直线上的方程.如下:k:=(y2-y1)/(x2-x1)
y=kx+b请问:各位大侠
判断一点在一条直线只有这种唯一算法,没有别的解法吧?
Option Explicit
Private Sub Form_Load()
Text1.Text = 100
Text2.Text = 100
End Sub
Private Sub Command1_Click()
'假直线的两个坐标是(X1, Y1), (X2, Y2),如何判断(X3, Y3)在直线上。
Dim X1 As Single, Y1 As Single, X2 As Single, Y2 As Single
Dim X3 As Single, Y3 As Single
X1 = 2000
Y1 = 2000
X2 = 4000
Y2 = 4000
X3 = Val(Text1.Text)
Y3 = Val(Text2.Text)
If (X1 = X2 And X2 = X3) Or (Y1 = Y2 And Y2 = Y3) Then
Line (X1, Y1)-(X2, Y2)
Line -(X3, Y3)
ElseIf Y3 = (Y2 - Y1) / (X2 - X1) * (X3 - X1) + Y1 Then
Line (X1, Y1)-(X2, Y2)
Line -(X3, Y3)
Else
Line (X1, Y1)-(X2, Y2)
DrawWidth = 3
PSet (X3, Y3)
DrawWidth = 1
MsgBox "NO"
End If
End Sub
y=kx+b请问:各位大侠
判断一点在一条直线只有这种唯一算法,没有别的解法吧?
Option Explicit
Private Sub Form_Load()
Text1.Text = 100
Text2.Text = 100
End Sub
Private Sub Command1_Click()
'假直线的两个坐标是(X1, Y1), (X2, Y2),如何判断(X3, Y3)在直线上。
Dim X1 As Single, Y1 As Single, X2 As Single, Y2 As Single
Dim X3 As Single, Y3 As Single
X1 = 2000
Y1 = 2000
X2 = 4000
Y2 = 4000
X3 = Val(Text1.Text)
Y3 = Val(Text2.Text)
If (X1 = X2 And X2 = X3) Or (Y1 = Y2 And Y2 = Y3) Then
Line (X1, Y1)-(X2, Y2)
Line -(X3, Y3)
ElseIf Y3 = (Y2 - Y1) / (X2 - X1) * (X3 - X1) + Y1 Then
Line (X1, Y1)-(X2, Y2)
Line -(X3, Y3)
Else
Line (X1, Y1)-(X2, Y2)
DrawWidth = 3
PSet (X3, Y3)
DrawWidth = 1
MsgBox "NO"
End If
End Sub
解决方案 »
- vb 跪求--怎样能够得到JPG格式图片文件的颜色模式还有图片大小
- 帮忙看看代码错在哪里?
- vb编程连接sqlserver2005,为何连不上呀?是不是要装2005的驱动呀?如何装?
- word一样的打印(在线等)
- 求:1.创建一个Word文档,2.把PictureBox控件中的图形导入,3.把RichTextBox控件中的文本导入,4.把MSFlexGrid中的表格数据导入
- 有谁知道FLASH文件的内部结构?
- 请教:VBA调用outlook express 要用引用哪个库文件
- 数据库问题
- 如何在win98第二版使用ActiveMovie控件
- 请问在VB里怎样得到同时按下俩个键,比如 w 和 a .
- doevents 和 timer 的冲突?
- VB 隐藏光标
上面议程的直线移动或拉伸后
(X1, Y1), (X2, Y2)发生变化后
K值不会发生变化,
y=kx+b,
x值如何确定。???
检查三个点是否在一条直线上或重合
int
Is_Three_Point_In_A_Line( double x1, double y1, double x2, double y2, double x3, double y3 )
{
double a, b, e;
a = ( x1 + x2 ) * ( x1 - x2 ) + ( y1 + y2 ) * ( y1 - y2 );
b = ( x3 + x2 ) * ( x3 - x2 ) + ( y3 + y2 ) * ( y3 - y2 );
e = ( x1 - x2 ) * ( y3 - y2 ) - ( x2 - x3 ) * ( y2 - y1 );
if( equ( e, 0 ) )
{
return 1;
}
return 0;
}