❶ 画出点c到ab的垂线
如图所示,先过C点画AB的垂线,垂足F在BA的延长线上;再过B点画AC的垂线,垂足E在CA的延长线上,最后过A点画BC的垂线,垂足D在BC上. 则:(1)线段CF就是点C到AB的垂线段; (2)直线AD就是BC的垂线; (3)量得线段BE的长度,即点B到AC的距离.
❷ c语言求点到线段最短距离的这两句代码是是什么意思
k=(p2.y-p1.y)/(p2.x-p1.x);
已知线段的斜率。就是
(y2-y1)
/
(x2-x1)
,点2与点1的
y
坐标之差,除以点2与点1的
x
坐标之差。
q.y
是某点的y坐标,
q.x
是某点的x坐标
s.x
是
垂足
的
x
坐标,s.y
垂足
的
y
坐标
距离
=
sqrt(
(q.y-s.y)
*
(q.y-s.y)
+
(q.x-s.x)
*
(q.x-s.x));
❸ c语言中的函数问题,帮帮忙
/*解一元二次方程*/
#include<stdio.h>
#include<math.h>
void main()
{
int a,b,c,i=1;
float x1,x2,dlt;
do
{
printf("Please input three numbers:");
scanf("%d%d%d",&a,&b,&c);
do
{ i++;
if(a==0)
{
printf("Input error.Please input again:");
scanf("%d%d%d",&a,&b,&c);
}
else
{
dlt=b*b-4*a*c;
if(dlt<0)
printf("该方程无实根。\n\n");
else
{
x1=(-1*b+sqrt(dlt))/(2*a);
x2=(-1*b-sqrt(dlt))/(2*a);
}
}
}while(a==0);
if(dlt<0)
printf("");
else
printf("x1=%f\nx2=%f\n\n",x1,x2);
}while(i<=3); /*循环三次*/
}
一定要用函数吗?这个没必要用函数,用函数还更复杂。一定要的话,自己稍微改一改就行了!
❹ C++程序 计算一条线段中垂线上距离该线段中点固定位置的点的坐标。具体如下图
把中点看成原点;建立坐标;
根据P1P2的斜度,进而求得sina;cosa;然后根据:l*sina±中点坐标;l*cosa±中点坐标;得到对应的坐标:
这样完全是设置变量解最后输出!应该属于傻瓜式!
写个方法计算; 最后在main函数中设置输入值;再输出调用方法得到对应的值! 思路这样,具体能不能实现也不知道;C++还没学!
❺ C语言已知平面上两个点:(7,1)、(4,6),求这两个点的中垂线方程。要求主子函数完成
直线方程要知道两个参数,一是直线的斜率,二是直线上的某个点。
根据已知条件:
设斜率的方向向量为(x,y),那么点积(x,y)*(4-7,6-1)=0,可以取x=5,y=-3,那么斜率k=y/x=-0.6;
中垂线经过这两点的中点,中点坐标为:(x0,y0)=(7+4,1+6)/2=(5.5,3.5)。
那中垂线方程就是:y-y0=k*(x-x0),即y=-0.6*(x-5.5)+3.5。
用子函数实现就是:
double midline(double x)
{
return =-0.6*(x-5.5)+3.5;
}
不知道你是要打印图形还是求y点的值,所以主程序没法给你写
❻ 求一C++程序:计算点到直线的距离
在Windows XP+VC++6.0下编译通过并正常运行
我的测试程序是用默认参数值初始化的
当然,你可以改为:
Point P(2,3);
Line L(1,2,3);
其它的都不变
懂了么?
#include<iostream>
#include<cmath>
using namespace std;
class Line;//声明类Line,因为Point类中声明友元函数friend dist(Point P,Line L)用到该类
class Point
{
private:
double x;
double y;
public:
Point(double xx=0,double yy=0)
{
x=xx;
y=xx;
}
friend double dist(Point P,Line L);
};
class Line
{
private:
double a;
double b;
double c;
public:
Line(double aa=1,double bb=1,double cc=1)
{
a=aa;
b=bb;
c=cc;
}
friend double dist(Point P,Line L);
};
double dist(Point P,Line L)
{
double s;
s=(L.a*P.x+L.b*P.y+L.c)/sqrt(L.a*L.a+L.b*L.b);
if(s>0)
return s;
else
return -s;
}
int main()
{
Point P;//这相当于 Point P(0,0);
Line L;//相当于 Line L(1,1,1);
cout<<dist(P,L)<<endl;
return 0;
}
❼ 点到直线距离公式是什么
点到直线距离公式是Ax+By+C=0。直线方程为Ax+By+C=0,点P的坐标为(x0,y0)。连接直线外一点与直线上各点的所有线段中,垂线段最短,这条垂线段的长度,叫做点到直线的距离。
点到直线距离是连接直线外一点与直线上各点的所有线段中,垂线段最短,这条垂线段的长度。
点到直线距离的知识与技能
理解点到直线距离公式的推导过程,并且会使用公式求出定点到定直线的距离,了解两条平行直线的距离公式。
并能推导平方过程与方法目标过程与方法目标通过对点到直线距离公式的推导,提高学生对数形结合的认识,加深用计算来处理图形的意识,把两条平行直线的距离关系转化为点到直线距离。
❽ 点到线段的距离计算公式是什么
点到线段的距离计算公式是:|AB|=[(x2-x1)^2+(y2-y1)^2]。
点到线距离之间的公式是|AB|=[(x2-x1)^2+(y2-y1)^2],点到直线的距离,即过这一点做目标直线的垂线,由这一点至垂足的距离。
通过对点到直线距离公式的推导,提高学生对数形结合的认识,加深用“计算”来处理“图形”的意识;把两条平行直线的距离关系转化为点到直线距离。
具体算法:
1、方法——经典算法
该算法直接用高中时所学习到的解析几何知识对点到线段的距离进行求解。其基本思想是先判断点在线段端点、点在线上等等的特殊情况,逐步的由特殊到一般。
当忽略点在线段上的特殊情况时,判断点到线段方向的垂线是否落在线段上的方法是通过比较横纵坐标的方式来判断,最后把不同的判断情况用不同的几何方式来进行处理计算得出结果。
由上面叙述的基本思路可以知道这种算法虽然很容易理解和接受,但从算法的实用性的角度分析还是有很大的缺点的,首先是算法复杂,计算量巨大,大量的比较判断、距离计算、角度计算等等。
实际应用中往往是需要求由大量线段组成的折线到某点的最短距离,如此用这样的算法计算量是不能想象的。其次经典算法中使用的一些简化运算的函数不利于语言的重新包装,如果想换编程语言的话,就比较麻烦了。
2、方法二——面积算法
该方法主要是先判断投影点是否在线段上,投影点在线段延长线上时,最短距离长度为点到端点的线段长度;当投影点在线段上时,先使用海伦公式计算三角形面积,再计算出三角形的高,即为最短距离。
运用面积算法求解点到线段最短距离思路很清晰,也很容易理解。从效率方面考虑,比如需要多次计算平方、根号,这对于大量数据进行运算是负担很重的。求面积就必须把三条边长全部求出,并且用到的海伦公式也需要进行开方运算,计算过程显得繁琐。
❾ vb 点到线段距离
点可以用P(x,y)表示,线段可以用Ax+By+C=0 (x1<x<x2)表示。
1、首先求点P在直线上的垂足(x3,y3);
2、如果x1<x3<x2,那么根据点到直线的距离公式求得距离;
3、如果x3<x1或x3>x2,那么求得P点到(x1,y1)和(x2,y2)的距离,取小者。