當前位置:首頁 » 編程語言 » c語言求點到線段垂線
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言求點到線段垂線

發布時間: 2022-11-06 08:07:55

❶ 畫出點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)的距離,取小者。