❶ 三维空间求直线方程
空间直角坐标系中平面方程为Ax+By+Cz+D=0空间直线的一般方程:两个平面方程联立,表示一条直线(交线)空间直角坐标系中平面方程为Ax+By+Cz+D=0
直线方程就是:A1x+B1y+C1z+D1=0,A2x+B2y+C2z+D2=0
联立(联立的结果可以表示为行列式)空间直线的标准式:
(类似于平面坐标系中的点斜式)(x-x0)/a=(y-y0)/b=(z-z0)/c其中(a,b,c)为方向向量空间直线的两点式:(类似于平面坐标系中的两点式)(x-x1)/(x-x2)=(y-y1)/(y-y2)=(z-z1)/(z-z2)
(1)三维线的计算方法扩展阅读:
空间直线的方向用一个与该直线平行的非零向量来表示,该向量称为这条直线的一个方向向量。直线在空间中的位置, 由它经过的空间一点及它的一个方向向量完全确定。在欧几里得几何学中,直线只是一个直观的几何对象。在建立欧几里得几何学的公理体系时,直线与点、平面等都是不加定义的,它们之间的关系则由所给公理刻画。
❷ 如何计算三维导线的闭合差啊
闭合导线角度闭合差=导线内角和-(n-2)×180°=σβi
-(n-2)×180°(n为闭合导线内角个数,i=1,2,3...n)
附合导线角度闭合差,假定起始边为ab(b为导线起点,即第一个折角观测点),结束边为cd(c为导线终点,即最后一个折角观测点),那么对应的两个已知方位角分别为αab和αcd,附合导线的角度闭合差实际是方位角闭合差,就是根据观测折角推算的结束边方位角αcd'与已知的结束边方位角αcd之差,用fβ表示,即:
fβ=αcd'-αcd
其中,αcd'=αab+σβi-n×180°,所以有
fβ=αab+σβi-n×180°-αcd(n为观测角个数,折角为左角)
❸ 求助,两条三维直线求交点的算法,最好有C++
这里假设是点向式,给定直线上一点(x1,y1,z1)和向量(m1,n1,p1)确定一条直线
对于两条直线,就是求方程组:
[m1m2|x1-x2]
[n1n2|y1-y2]
[p1p2|z1-z2]
的解。
如果有解(t1,t2),那么(x1+m1*t1,y1+n1*t1,z1+p1*t1)就是一个交点
求解线性方程组有很多方法,这里因为只有三个方程,可以直接用克莱默法则解
#include<iostream>
std::pair<double,double>dd(doublea,doubleb,
doublec,doubled,doublem,doublen);
voidmain(){
doublem1,n1,p1,x1,y1,z1;
doublem2,n2,p2,x2,y2,z2;
std::cin>>m1>>n1>>p1>>x1>>y1>>z1;
std::cin>>m2>>n2>>p2>>x2>>y2>>z2;
std::pair<double,double>answer;
constdoubleepsilon=1E-2;
//求解直线(x-x1)/m1=(y-y1)/n1=(z-z1)/p1和(x-x2)/m2=(y-y2)/n2=(z-z2)/p2的交点
if(fabs(m2*n2-n1*m2)<epsilon&&fabs(m1*p2-p1*m2)<epsilon){
if(fabs(m1*(y1-y2)-n1*(x1-x2))<epsilon&&fabs(m1*(z1-z2)-p1*(x1-x2))<epsilon)
std::cout<<"直线平行完全重合"<<std::endl;
else
std::cout<<"直线平行不相交"<<std::endl;
}
elseif(fabs(m1*n2-n1*m2)>epsilon){
answer=dd(m1,n1,m2,n2,x1-x2,y1-y2);
if(p1*answer.first+p2*answer.second-(z1-z2)<epsilon){
std::cout<<answer.first<<" "<<answer.second<<std::endl;
std::cout<<"找到!x="<<x1+m1*answer.first<<"y="<<y1+n1*answer.second<<std::endl;
}
elsestd::cout<<"无解"<<std::endl;
}
elseif(fabs(m1*p2-p1*m2)>epsilon){
answer=dd(m1,p1,m2,p2,x1-x2,z1-z2);
if(fabs(n1*answer.first+n2*answer.second-(z1-z2))<epsilon){
std::cout<<"找到!x="<<x1+m1*answer.first<<"y="<<y1+n1*answer.second<<std::endl;
}
elsestd::cout<<"无解"<<std::endl;
}
elsestd::cout<<"出错"<<std::endl;
}
std::pair<double,double>dd(doublea,doubleb,
doublec,doubled,doublem,doublen){
returnstd::pair<double,double>((m*d-c*n)/(a*d-c*b),(a*n-b*m)/(a*d-c*b));
}
❹ 三维空间里直线的一般方程怎么表示
直线方程为(x-4)/2 =(y+1)/1 =(z-3)/5。
空间直角坐标系中平面方程为Ax+By+Cz+D=0
空间直线的一般方程:
两个i面方程联立表示一条直线(交线)
空间直角坐标系中平面方程为Ax+By+Cz+D=0
直线方程就是:A1x+B1y+C1z+D1=0,A2x+B2y+C2z+D2=0联立
(联立的结果可以表示为行列式)
空间直线的标准式:(类似于平面坐标系中的点斜式)
(x-x0)/a=(y-y0)/b=(z-z0)/c
其中(a,b,c)为方向向量
空间直线的两点式:(类似于平面坐标系中的两点式)
(x-x1)/(x-x2)=(y-y1)/(y-y2)=(z-z1)/(z-z2)
(4)三维线的计算方法扩展阅读:
⑴点(x1,y1)关于点(x0,y0)对称的点:(2x0-x1,2y0-y1)
⑵点(x0,y0)关于直线Ax+By+C=0对称的点:
( x0-2A(Ax0+By0+C)/(A^2+B^2) ,y0-2B(Ax0+By0+C)/(A^2+B^2) )
⑶直线y=kx+b关于点(x0,y0)对称的直线:y-2y0=k(x-2x0)-b
⑷直线1关于不平行的直线2对称:定点法、动点法、角平分线法
❺ 三维直线表达式
空间直线的两点式:
(类似于平面坐标系中的两点式)
设两点为A(x1,y1,z1),B(x2,y2,z2)
则直线AB方程为(x-x1)/(x2-x1)=(y-y1)/(y2-y1)=(z-z1)/(z2-z1)
❻ 三维空间中,怎么求两条线的最短距离(需要用有三角函数的解法)
①可以用外积求得公垂线方向向量n。
②分别在已知两条直线上找两个点A,B。
③向量AB=m。
d=|mn数量积|/|n|。
AB=(x1,y1,z1)
CD=(x2,y2,z2)
设公垂线n=(x,y,z)
n·AB=0
n·CD=0
三角函数
一般用于计算三角形中未知长度的边和未知的角度,在导航、工程学以及物理学方面都有广泛的用途。另外,以三角函数为模版,可以定义一类相似的函数,叫做双曲函数。常见的双曲函数也被称为双曲正弦函数、双曲余弦函数等等。三角函数(也叫做圆函数)是角的函数;它们在研究三角形和建模周期现象和许多其他应用中是很重要的。