Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- class Point {
- private double x, y;
- public double getX() {
- return x;
- }
- public void setX(double x) {
- this.x = x;
- }
- public double getY() {
- return y;
- }
- public void setY(double y) {
- this.y = y;
- }
- public Point(double x, double y) {
- // TODO Auto-generated constructor stub
- this.x = x;
- this.y = y;
- }
- public static double distanceBetween(Point point1, Point point2) {
- double deltaX = point1.x - point2.x;
- double deltaY = point1.y - point2.y;
- return Math.sqrt((deltaX * deltaX) + (deltaY * deltaY));
- }
- }
- public class _1_Triangle {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Scanner scan = new Scanner(System.in);
- Point[] triangle = new Point[3];
- for (int i = 0; i < triangle.length; i++) {
- int pointX = scan.nextInt();
- int pointY = scan.nextInt();
- triangle[i] = new Point(pointX, pointY);
- }
- double[] triangleSides = calculateLengthsOf3SidesOfGivenTriangle(triangle);
- boolean isTriangle = checkGiven3PointsCanFormTriangleOrNot(triangleSides);
- if (isTriangle) {
- System.out.println("Yes");
- double areaTriangle = calculateAreaOfGivenTriangle(triangleSides);
- System.out.printf("%.2f\n", areaTriangle);
- } else {
- System.out.println("No");
- System.out.printf("%.2f\n", triangleSides[0]);
- }
- }
- private static double[] calculateLengthsOf3SidesOfGivenTriangle(
- Point[] triangle) {
- // TODO Auto-generated method stub
- double[] sides = new double[3];
- for (int i = 0; i < sides.length; i++) {
- sides[i] = Point
- .distanceBetween(triangle[i], triangle[(i + 1) % 3]);
- }
- return sides;
- }
- private static boolean checkGiven3PointsCanFormTriangleOrNot(double[] sides) {
- for (int i = 0; i < sides.length; i++) {
- double sumOf2Sides = sides[i] + sides[(i + 1) % 3];
- if (sumOf2Sides <= sides[(i + 2) % 3]) {
- return false;
- }
- }
- return true;
- }
- private static double calculateAreaOfGivenTriangle(double[] sides) {
- // TODO Auto-generated method stub
- double perimeter = (sides[0] + sides[1] + sides[2]) / 2;
- double area = perimeter;
- for (int i = 0; i < sides.length; i++) {
- area *= perimeter - sides[i];
- }
- area = Math.sqrt(area);
- return area;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement