c語言三點
『壹』 c語言 判斷三個點是不是在一條直線上 在線等 點自定
#include"stdafx.h"
#include<stdio.h>
#include<math.h>
intmain()
{
floatx1,x2,x3,y1,y2,y3;
scanf("(%f,%f) ",&x1,&y1);
scanf("(%f,%f) ",&x2,&y2);
scanf("(%f,%f)",&x3,&y3);
if((y1-y2)/(x1-x2)==(y2-y3)/(x2-x3))
printf("在同一直線上。 ");
elseprintf("不在同一直線上。 ");
return0;
}
舉例:輸入
(1,2)
(2,4)
(4,8)
『貳』 C語言輸入三個點的坐標A(x1,y1),B(x2,y2),C(x3,y3)。判斷這三個點能否構成三角形
只要任取一點,並以此為基點,分別計算與另外兩點連線的斜率,若AB的斜率,等於AC的斜率,則這三點是共線的,它們就不能構成三角形。否則就一定能夠構成三角形。
『叄』 解析 c語言編寫的根據三點得出圓心和半徑的數學含義
/***************
* 已知三點求圓的 get_circle() 函數
* x1, y1為第一個點的坐標,以此類推
* r為求出的半徑,x0, y0為圓心坐標
* 調用函數之前應先檢查三點是否共線 否則會彈出被零除的錯誤
***************/
# include <math.h>
void get_circle(double x1, double y1, double x2, double y2, double x3, double y3, double* r, double* x0, double* y0)
{
double m1, n1, m2, n2, a1, b1, a2, b2;
m1 = (x1 + x3) / 2;
n1 = (y1 + y3) / 2;
m2 = (x2 + x3) / 2;
n2 = (y2 + y3) / 2;
a1 = (y3 - y1) / (x3 - x1);
b1 = n1 - a1*m1;
a2 = (y3 - y2) / (x3 - x2);
b2 = n2 - a2*m2;
*x0 = (b2 - b1) / (a1 - a2);
*y0 = a1 * *x0 + b1;
*r = sqrt((x1-x0)*(x1-x0) + (y1-y0)*(y1-y0));
return;
}
希望對你有幫助!
『肆』 已知三點求圓的方程的c語言編程
/*相關子函數由一樓abccsss的代碼修改而成,其中第一個和第二個點以及第二個和第三個點的連線不得經過圓心!第一個和第二個點以及第二個和第三個點的橫縱坐標不得相同!*/
#include<stdio.h>
# include <math.h>
void get_circle(double x1, double y1, double x2, double y2, double x3, double y3, double* r, double* x0, double* y0)
{
double m1, n1, m2, n2, a1, b1, a2, b2;
m1 = (x1 + x2) / 2;
n1 = (y1 + y2) / 2;
printf("\n\t第一條垂直平分線必過點為(%f,%f)",m1,n1);
m2 = (x2 + x3) / 2;
n2 = (y2 + y3) / 2;
printf("\n\t第二條垂直平分線必過點為(%f,%f)",m2,n2);
a1 = -(x2 - x1)/(y2 - y1);
b1 = n1 - a1*m1;
printf("\n\t第一條垂直平分線為y=%fx+%f",a1,b1);
a2 = -(x3 - x2)/(y3 - y2);
b2 = n2 - a2*m2;
printf("\n\t第二條垂直平分線為y=%fx+%f",a2,b2);
*x0 = (b2 - b1) / (a1 - a2);
*y0 = a1 * *x0 + b1;
*r = sqrt((x1-*x0)*(x1-*x0) + (y1-*y0)*(y1-*y0));
return;
}
typedef struct{
float x;
float y;
}bit;
main(){
printf("\n\t\t\t輸入三個點以計算圓心和半徑");
bit d[3];
printf("\n\t輸入第一個點的坐標:");
scanf("%f,%f",&d[0].x,&d[0].y);
printf("\n\t輸入第二個點的坐標:");
scanf("%f,%f",&d[1].x,&d[1].y);
printf("\n\t輸入第三個點的坐標:");
scanf("%f,%f",&d[2].x,&d[2].y);
double r,x0,y0;
get_circle(d[0].x,d[0].y,d[1].x,d[1].y,d[2].x,d[2].y,&r,&x0,&y0);
printf("\n\t\t圓心為:(%f,%f),半徑為%f",x0,y0,r);
}
『伍』 c語言中怎樣輸入三點坐標使它們不在同一行
同一行就代表著縱坐標相等 只要縱坐標不等就ok啦
『陸』 關於用C語言求三點坐標圍成的面積的問題
你的代碼缺點scanf()函數寫的太復雜,把裡面的括弧與逗號最好去掉,避免在輸入數據時忘了按而出錯,其中可以用空格來代替。
主要有兩個錯誤,而出錯的地方原因都是相同的,就是格式控制符不對,你定義的變數全部是double類型的,而你的輸入輸出格式卻是整形%d的,你試著將輸入輸出中的%d改成%lf看看。
『柒』 c語言:平面直角坐標系,輸入三點坐標(六個數不要用括弧分隊)。判斷能否構成三
#include <stdio.h>
#include <math.h>//庫函數頭文件;
int main()
{
int x1,x2,x3,y1,y2,y3;
float a,b,c;
scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3);
a=sqrt(pow(x1-x2,2)+pow(y1-y2,2));//通過兩點之間的距離計算公式,得出任意兩個點的距離;
b=sqrt(pow(x1-x3,2)+pow(y1-y3,2));
c=sqrt(pow(x2-x3,2)+pow(y2-y3,2));
if(a+b>c||a+c>b||c+b>a)//只要滿足任意兩邊之和大於第三遍,就能構成一個三角形;
printf("三點連線可以構成三角形");
else
printf("三點連線不可以構成三角形");
}
//調用的庫函數有:pow()指數函數,sqrt()開平方函數
『捌』 c語言 判斷三點一線
我也不大理解。但是你可以去看看關於數據存儲方面的書。應當能給你解釋清楚。
『玖』 c語言三點法畫圓 要交作業 在線等
是指給三點坐標,求過這三個點的圓?這明明是數學題。。。