【c语言】三角形外心坐标

新学期第一个算法大作业就好坑爹。。。

要计算三角形外接圆。。。做模板用吧

# include<stdio.h>
# include<math.h>

double X1,Y1,X2,Y2,X3,Y3,x4,y4,length1,length2,length3;
int a;

void myprintf(double x1,double y1,double x2,double y2,double x3,double y3)
{
	char ch;
	printf("输入第一个点的坐标值,横纵坐标用逗号隔开(如(0,0)):");
	while(scanf("(%lf,%lf)",&X1,&Y1)!=2)
	{
		while((ch=getchar())!='\n')
		{
			continue;
		}
		printf("输入有误,请重新输入第一个点的坐标值,横纵坐标用逗号隔开(如(0,0)):");
	}
	while((ch=getchar())!='\n')
	{
		continue;
	}
	printf("输入第二个点的坐标值,横纵坐标用逗号隔开(如(0,0)):");
	while(scanf("(%lf,%lf)",&X2,&Y2)!=2)
	{
		while((ch=getchar())!='\n')
		{
			continue;
		}
		printf("输入有误,请重新输入第二个点的坐标值,横纵坐标用逗号隔开(如(0,0)):");
	}
	while((ch=getchar())!='\n')
	{
		continue;
	}
	printf("输入第三个点的坐标值,横纵坐标用逗号隔开(如(0,0)):");
	while(scanf("(%lf,%lf)",&X3,&Y3)!=2)
	{
		while((ch=getchar())!='\n')
		{
			continue;
		}
		printf("输入有误,请重新输入第三个点的坐标值,横纵坐标用逗号隔开(如(0,0)):");
	}
	while((ch=getchar())!='\n')
	{
		continue;
	}
}
void main()
{
	myprintf(X1,Y2,X2,Y2,X3,Y3);
	length1=sqrt(pow(X1-X2,2)+pow(Y1-Y2,2));
	length2=sqrt(pow(X1-X3,2)+pow(Y1-Y3,2));
	length3=sqrt(pow(X2-X3,2)+pow(Y2-Y3,2));
	while((length1>=length2+length3)||(length2>=length1+length3)||length3>=length1+length2)
	{
		printf("输入的三个点不能构成三角形,请重新输入\n");
		myprintf(X1,Y2,X2,Y2,X3,Y3);
		length1=sqrt(pow(X1-X2,2)+pow(Y1-Y2,2));
		length2=sqrt(pow(X1-X3,2)+pow(Y1-Y3,2));
		length3=sqrt(pow(X2-X3,2)+pow(Y2-Y3,2));
	}
	x4=(pow(X2,2)*Y1-pow(X3,2)*Y1-pow(X1,2)*Y2+pow(X3,2)*Y2-pow(Y1,2)*Y2+pow(Y2,2)*Y1+pow(X1,2)*Y3-pow(X2,2)*Y3+pow(Y1,2)*Y3-pow(Y2,2)*Y3-pow(Y3,2)*Y1+pow(Y3,2)*Y2)/(2*(X2*Y1-X3*Y1-X1*Y2+X3*Y2+X1*Y3-X2*Y3));
	y4=-(-pow(X1,2)*X2+pow(X2,2)*X1+pow(X1,2)*X3-pow(X2,2)*X3-pow(X3,2)*X1+pow(X3,2)*X2-pow(Y1,2)*X2+pow(Y1,2)*X3+pow(Y2,2)*X1-pow(Y2,2)*X3-pow(Y3,2)*X1+pow(X3,2)*X2)/(2*(X2*Y1-X3*Y1-X1*Y2+X3*Y2+X1*Y3-X2*Y3));
	printf("此三角形外心坐标为(%lf,%lf)\n",x4,y4);
}
时间: 2025-01-26 19:31:33

【c语言】三角形外心坐标的相关文章

【进化版】三角形外心坐标和外接圆半径

自己重写了一个更具有针对性的计算模板!! 欧耶~~~ 功能:已知一个三角形的三个顶点的坐标,求他的外心及外接圆半径 #include <stdio.h> #include <math.h> typedef struct { double x; double y; }myPoint; double distance(myPoint A,myPoint B) { double dis = (A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y); return s

Swift语言实现地图坐标弹跳动画_Swift

下面应用Swift语言做地图坐标实现弹簧跳动的效果,具体实现方法如下所示: iOS动画大概分这几种: CoreAnimation动画(基础)UIView动画(animateWithDuration开头的函数,带弹簧特效)UIDynamic动画(有物理引擎) 上次写弹跳动画,由于刚开始学,就用了最基础的CA动画,但是因为自己不会写KeyFrame,所以还引用了一个开源库来实现下坠的弹跳效果,这样固然是实现了需求,但是一点都不优雅--从iOS7开始,有了2.3两种动画,就不再需要用老的CA动画去一点

JAVA求两直线交点和三角形内外心的方法_java

一.求两直线交点 复制代码 代码如下: class Point {    double x;    double y;     public Point() {        this.x = 0;        this.y = 0;    }}class Line {    Point a;    Point b;     public Line() {        this.a = new Point();        this.b = new Point();    }    //求

c++-C语言 输出结果不对(统计三角形区域内多少棵树问题)

问题描述 C语言 输出结果不对(统计三角形区域内多少棵树问题) 果园里的数 xy坐标为1到99的整数,输入一个三角形的坐标 统计内部和边界有多少棵树 样例输入1.5 1.5 1.5 6.8 6.8 1.5 样例输出15 以下是通过有向面积编写的程序 哪里错了 为何输出30 #include double area2(double x0,double y0,double x1,double y1,double x2,double y2) { return x0*y1+x1*y2+x2*y0-x2*

求两直线交点和三角形内外心

一.求两直线交点 class Point { double x; double y; public Point() { this.x = 0; this.y = 0; } } class Line { Point a; Point b; public Line() { this.a = new Point(); this.b = new Point(); } //求两直线的交点,斜率相同的话res=u.a Point intersection(Line u,Line v){ Point res

POJ 1329 求三角形外接圆

题意给出三角形三点坐标让求出该三角形的外接圆标准方程和一般方程. 这题输出很恶心,注意0.000的时候要输出并且前面的符号为" + ",那么外接圆的半径r通过S=(a*b*c)/(4*r)可以求出r=(a*b*c)/(4*S),然后外心坐标是三边垂直平分线的交点,求出两个垂直平分线方程然后可以得出交点坐标. #include <iostream> #include<cstdio> #include<cstring> #include<algor

WPF 3D: MeshGeometry3D纹理坐标的正确定义

原文 WPF 3D: MeshGeometry3D纹理坐标的正确定义 为了使基于2D的纹理显示在3D对象中,我们必须定义3D Mesh对象的纹理贴图坐标.在WPF中,此项功能则通过MeshGeometry3D.TextureCoordinates属性.   2D纹理的对应坐标和WPF的LinearGradientBrush的StartPoint和EndPoint一样. 下图来自MSDN关于LinearGradientBrush的StartPoint的说明:  (0,0)代表整个图形的左上角,(1

数学笔记

  1 整数的唯一分解定理(如果A本身就是素数的话,那么本身就是分解式) 任意正整数都有且只有一种方式写出其素因子的乘积表达式. A = (p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn)   其中pi均为素数; A^B = p1^(k1*B) * p2^(k2*B)*...* pn^(kn*B); #include<algorithm> #include<iostream> #include<cstdio> #include<cmath&g

用canvas 实现个图片三角化(LOW POLY)效果

之前无意中看到Ovilia 用threejs做了个LOW POLY,也就是图片平面三角化的效果,觉得很惊艳,然后就自己花了点时间尝试了一下. 我是没怎么用过threejs,所以就直接用canvas的2d绘图API来做,因为感觉似乎这效果也用不上threejs. 直接上demo先:http://whxaxes.github.io/canvas-test/src/Funny-demo/lowpoly/index.html   (也可以在移动端看,不过因为计算量比较大,移动设备计算起来会比PC要多花些