笔试题:判断一个点是否在三角形内

自己碰到的一道笔试题

给出 4 个点,判断第 4 个点是否在前 3 个点构成的三角形的内部(假设这 3 个点不在同一条直线上)。

import java.util.Scanner;

public class Main{

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        //(x0, y0), (x1, y1), (x2, y2)构成一个三角形
        //判断(x3, y3)是否位于该三角形内
        double[] x = new double[4];
        double[] y = new double[4];
        for(int i = 0; i < 4; i++){
            x[i] = scanner.nextDouble();
            y[i] = scanner.nextDouble();
        }

        boolean flag = inTheSamePart(x[0], y[0], x[1], y[1], x[2], y[2], x[3], y[3])
                && inTheSamePart(x[1], y[1], x[2], y[2], x[0], y[0], x[3], y[3])
                && inTheSamePart(x[2], y[2], x[0], y[0], x[1], y[1], x[3], y[3]);
        System.out.println(flag ? "Yes" : "No");
    }

    //判断(x2, y2)和(x3, y3)是否位于由(x0, y0)和(

你可能感兴趣的:(笔试题:判断一个点是否在三角形内)