java 点是否在三角形_用java判断点是否在三角形内 | 学步园

public class Sanjiao{

public static void main(String[]args){

Triangle p = newTriangle();

if(p.Sanjiaoxing() == true){

System.out.println("这个传说中的点在三角形内部");

}else {

System.out.println("孩子,在三角形外面了哦!");

}

}

}

class Triangle{

Point p = new Point(2,2);

Point p1 = new Point(4,1);

Pointp2 = new Point(1,1);

Pointp3 = new Point(3,3);

publicboolean Sanjiaoxing(){

if(p.f1() * p1.f1()>0 && p.f2() * p2.f2()>0&& p.f3() * p3.f3()>0){

return true;

}

returnfalse;

}

}

class Point{

private double a;

private double b;

public Point(doublea,double b){

this.a = a;

this.b = b;

}

public double f1(){

return a-b;

}

public double f2(){

return b + 2*a - 9;

}

public double f3(){

returnb=1;

}

}

其实在写这个程序的时候,我遇到了蛮多问题的,其中在那些方法f1,f2,f3中首先我是把这些放在了publicstatic的测试函数内,后来我错了,在cadn中问贴,有人告诉我某个类的方法要放在某个类里面定义,所以我把那些方法放在了Point里面定义,不过呢,又遇到了问题,那就是在构造方法时每一个方法名后面的括号应该为空,因为如果你的方法括号内有参数的话将无法使得在point类的方法应用到测试函数中。

整个判断点是否在三角形之内的

因为:在直角坐标系中,如果要判断点D(a,b)是否在三角内的话,那么这个点必须与三角形一边f1对顶点A(a1,b1)点相同一侧,那么就是:

这个点D与A点带入方程的乘积必须大于零,也就是他们在方程中必须同号才能是同一侧,这么求出的只是点在三角形的哪一侧而已,要确定在不在三角形之内的话,就是D点分别和三个顶点在所对应的边方程中乘积的符号判定,三者都大于0,就在三角形之内,否则不是。此题这么证明。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值