华为机试题:判断一个点是否在三角形内(java)

这篇博客详细介绍了如何使用Java编程语言来判断一个给定点是否位于一个三角形的内部。内容包括关键算法和步骤,适合对几何计算和Java编程感兴趣的读者。
摘要由CSDN通过智能技术生成

描述: 

一个二维坐标系中(100*100,每一维0~99),已知三角形三个顶点的坐标A、B、C,判断坐标系中的任意点:P,是否在三角形内(在三角形边上也认为在三角形内)

 

请实现如下接口

/* 功能:点是否在三角形内

 * 输入:三角形三顶点坐标:A、B、C,以及待确认的点:P

 * 输出:无

 * 返回:在三角形内返回true,否则返回false

 */

public static boolean isInTriangle(POINTAPOINTBPOINTCPOINTP)

{

     return true;

}

 

 

约束:

  1. 二维坐标系中(100*100,每一维0~99),接口传入4点坐标的合法性由调用者保证

  2.  

 

 

 

 

 


package huawei;

import java.math.*;

public final class Demo {
	
	
	
	@SuppressWarnings("null")
	public static  boolean isInTriangle(POINT A, POINT B, POINT C, POINT P)
	{
		 /*利用叉乘法进行判断,假设P点就是M点*/
		int a = 0, b = 0, c = 0;
		
		/*向量减法*/
		POINT MA = new POINT(P.x - A.x,P.y - A.y);
		POINT MB = new POINT(P.x - B.x,P.y - B.y);
		POINT MC = new POINT(P.x - C.x,P.y - C.y);
		
		/*向量叉乘*/
		a = MA.x * MB.y - MA.y * MB.x;
		b = MB.x * MC.y - MB.y * MC.x;
		c = MC.x * MA.y - MC.y * MA.x;
		
		if((a <= 0 && b <= 0 && c <= 0)||
			(a > 0 && b > 0 && c > 0))
		{
			return true;
		}
		
		return false;
	}
}


package huawei;

public class POINT {
	int x;
	int y;
	public POINT(int x,int y)
	{
		this.x=x;
		this.y=y;
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dmfrm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值