如何判断三角形三点构成的圆的圆心位置是否在三角形内?
三角形三点构成一个圆,请问圆心位置在三角形内还是外面?已知三点坐标,和圆心坐标。最好给代码
[解决办法]
这么简单的题目如果都不自己动手,软件编程是不可能学好的,还是自己做吧
首先:既然你有三个顶点,你是不需要提供圆心的,外心是唯一的,有三个点可以唯一确定外心
其次:判断外心位置只要知道三边长度即可,如果c是最长边,且a*a+b*b-c*c <0则三角形肯定是钝角三角形,而外心在三角形外和三角形是钝角三角形等价
#include <iostream>#include <cmath>using namespace std;class Point{public: Point(); double x; double y;};int main(){ Point a,b,c; cout<<"Put in three points' coordinates:\n"; cin>>a.x>>a.y>>b.x>>b.y>>c.x>>c.y; double ab,bc,ca; ab=sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)); bc=sqrt((b.x-c.x)*(b.x-c.x)+(b.y-c.y)*(b.y-c.y)); ca=sqrt((c.x-a.x)*(c.x-a.x)+(c.y-a.y)*(c.y-a.y)); if(ab*ab+bc*bc-ca*ca<0||bc*bc+ca*ca-ab*ab<0||ca*ca+ab*ab-bc*bc<0)cout<<"Out of the triangle."<<endl; else cout<<"In the triangle."<<endl; return 0;}Point::Point():x(0.0),y(0.0){}