C++求直线方程并求直线延长线上的某点的算法
摘要: 3:截距式:x/a+y/b=1【适用于不过原点或不垂直于x轴、y轴的直线】5:两点式:【适用于不垂直于x轴、y轴的直线】直线方程求解是一个相对简单的过程,使用的是斜截式方程,先考虑特殊情况,在用斜截式的方法替换就行,pt1和pt2为起点,nLen为延长的距离可为负数,Outpt为计算的延长的点。
C++求直线方程并求直线延长线上的某点的算法 直线方程的几种形式 1一般式:Ax+By+C=0(A、B不同时为0)【适用于所有直线】
A1/A2=B1/B2≠C1/C2←→两直线平行
A1/A2=B1/B2=C1/C2←→两直线重合
横截距a=-C/A
纵截距b=-C/B
2:点斜式:y-y0=k(x-x0) 【适用于不垂直于x轴的直线】
表示斜率为k,且过(x0,y0)的直线
3:截距式:x/a+y/b=1【适用于不过原点或不垂直于x轴、y轴的直线】
表示与x轴、y轴相交,且x轴截距为a,y轴截距为b的直线
4:斜截式:y=kx+b【适用于不垂直于x轴的直线】
表示斜率为k且y轴截距为b的直线
5:两点式:【适用于不垂直于x轴、y轴的直线】
表示过(x1,y1)和(x2,y2)的直线
直线方程求解是一个相对简单的过程,使用的是斜截式方程,先考虑特殊情况,在用斜截式的方法替换就行,pt1和pt2为起点,nLen为延长的距离可为负数,Outpt为计算的延长的点。
#include
typedef struct Point //二维点结构
{
DOUBLE x,y;
Point()
{
x = 0;
y = 0;
}
Point(DOUBLE xx,DOUBLE yy)
{
x = xx;
y = yy;
}
}SDPoint;
BOOL ExPandLine(SDPoint pt1,SDPoint pt2,
我来说两句