如何判断三角形三点构成的圆的圆心位置是否在三角形内?

时间:2020-12-30 10:25:51
三角形三点构成一个圆,请问圆心位置在三角形内还是外面?已知三点坐标,和圆心坐标。最好给代码

15 个解决方案

#1


也就是外接圆的问题!...
  明天帮你解答!
     .....

#2


一定给你贴上代码!

#3


判断三角形面积与过圆心的三角形面积
大于圆心在其中,小于圆心在其外,等于在一条边上

#4


这么简单的题目如果都不自己动手,软件编程是不可能学好的,还是自己做吧
首先:既然你有三个顶点,你是不需要提供圆心的,外心是唯一的,有三个点可以唯一确定外心
其次:判断外心位置只要知道三边长度即可,如果c是最长边,且a*a+b*b-c*c <0则三角形肯定是钝角三角形,而外心在三角形外和三角形是钝角三角形等价 
引用楼主 zghanhailiang 的回复:
三角形三点构成一个圆,请问圆心位置在三角形内还是外面?已知三点坐标,和圆心坐标。最好给代码

#5


引用 3 楼 whjwu 的回复:
判断三角形面积与过圆心的三角形面积
大于圆心在其中,小于圆心在其外,等于在一条边上

+1  好像算法书也是这么解的!

#6


只需判断三角形是钝角、直角还是锐角。

#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)
{}

#7


额,突然发现我晕了。开方之后又乘回去了。以前做数学做多了,这道题用不到那么多信息。

#8


干吗开根号再平方?:)
引用 6 楼 kingbigeast 的回复:
只需判断三角形是钝角、直角还是锐角。

C/C++ code

#include <iostream>
#include <cmath>
using namespace std;
class Point
{
public:
    Point();
    double x;
    double y;
};
int main()
{
    Point a,b,c……

#9


引用 6 楼 kingbigeast 的回复:
只需判断三角形是钝角、直角还是锐角。

+1
基本数学知识。

#10


叉乘(小心边界条件,不要犯除零错误。)
《计算几何》
计算几何大牛: http://www.codeproject.com/KB/recipes/Wykobi.aspx

#11


只需要外接一个圆,然后点到圆心的距离和半径比较大小不就出来了吗?

#12


引用 10 楼 zhao4zhong1 的回复:
叉乘(小心边界条件,不要犯除零错误。)
《计算几何》
计算几何大牛:http://www.codeproject.com/KB/recipes/Wykobi.aspx


叉乘!我怎么没想到,这样就不用算余弦值了。
顶。。

#13


昨天回答错了。
除了上面各位的方法,还可以
1 连接三角形顶点和圆心,如果圆心在三角形中的话,这条连线都夹在两边之间
2 如果一个点在三角形中的话,那么这个点和三角形任意两点的面积之和是等于这个三角形的
3 如果一个点在三角形内的话,那么这个点都在每条边的同一个方向

#14


叉乘不可能有效的,叉乘只有在3维空间才有意义,对于2维的几乎每什么用处(有叉乘定义么?)

这个问题很简单,无非就是用余弦定理判断三角形是不是钝角三角形而已。相信这是最快的方法

引用 12 楼 kingbigeast 的回复:
引用 10 楼 zhao4zhong1 的回复:

叉乘(小心边界条件,不要犯除零错误。)
《计算几何》
计算几何大牛:http://www.codeproject.com/KB/recipes/Wykobi.aspx


叉乘!我怎么没想到,这样就不用算余弦值了。
顶。。

#15


谢谢各位献计献策。

#1


也就是外接圆的问题!...
  明天帮你解答!
     .....

#2


一定给你贴上代码!

#3


判断三角形面积与过圆心的三角形面积
大于圆心在其中,小于圆心在其外,等于在一条边上

#4


这么简单的题目如果都不自己动手,软件编程是不可能学好的,还是自己做吧
首先:既然你有三个顶点,你是不需要提供圆心的,外心是唯一的,有三个点可以唯一确定外心
其次:判断外心位置只要知道三边长度即可,如果c是最长边,且a*a+b*b-c*c <0则三角形肯定是钝角三角形,而外心在三角形外和三角形是钝角三角形等价 
引用楼主 zghanhailiang 的回复:
三角形三点构成一个圆,请问圆心位置在三角形内还是外面?已知三点坐标,和圆心坐标。最好给代码

#5


引用 3 楼 whjwu 的回复:
判断三角形面积与过圆心的三角形面积
大于圆心在其中,小于圆心在其外,等于在一条边上

+1  好像算法书也是这么解的!

#6


只需判断三角形是钝角、直角还是锐角。

#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)
{}

#7


额,突然发现我晕了。开方之后又乘回去了。以前做数学做多了,这道题用不到那么多信息。

#8


干吗开根号再平方?:)
引用 6 楼 kingbigeast 的回复:
只需判断三角形是钝角、直角还是锐角。

C/C++ code

#include <iostream>
#include <cmath>
using namespace std;
class Point
{
public:
    Point();
    double x;
    double y;
};
int main()
{
    Point a,b,c……

#9


引用 6 楼 kingbigeast 的回复:
只需判断三角形是钝角、直角还是锐角。

+1
基本数学知识。

#10


叉乘(小心边界条件,不要犯除零错误。)
《计算几何》
计算几何大牛: http://www.codeproject.com/KB/recipes/Wykobi.aspx

#11


只需要外接一个圆,然后点到圆心的距离和半径比较大小不就出来了吗?

#12


引用 10 楼 zhao4zhong1 的回复:
叉乘(小心边界条件,不要犯除零错误。)
《计算几何》
计算几何大牛:http://www.codeproject.com/KB/recipes/Wykobi.aspx


叉乘!我怎么没想到,这样就不用算余弦值了。
顶。。

#13


昨天回答错了。
除了上面各位的方法,还可以
1 连接三角形顶点和圆心,如果圆心在三角形中的话,这条连线都夹在两边之间
2 如果一个点在三角形中的话,那么这个点和三角形任意两点的面积之和是等于这个三角形的
3 如果一个点在三角形内的话,那么这个点都在每条边的同一个方向

#14


叉乘不可能有效的,叉乘只有在3维空间才有意义,对于2维的几乎每什么用处(有叉乘定义么?)

这个问题很简单,无非就是用余弦定理判断三角形是不是钝角三角形而已。相信这是最快的方法

引用 12 楼 kingbigeast 的回复:
引用 10 楼 zhao4zhong1 的回复:

叉乘(小心边界条件,不要犯除零错误。)
《计算几何》
计算几何大牛:http://www.codeproject.com/KB/recipes/Wykobi.aspx


叉乘!我怎么没想到,这样就不用算余弦值了。
顶。。

#15


谢谢各位献计献策。