17:计算三角形面积

一、问题链接

http://noi.openjudge.cn/ch0103/17/


二、问题需求

2.1 输入六个单精度浮点数,分别代表三个顶点的横坐标、纵坐标,计算并输出由这三个顶点构成的三角形面积


三、相关知识点

序号知识点列表
知识点说明
3.1高斯三角形面积公式(鞋带公式) S △ = ( x 1 × y 2 + x 2 × y 3 + x 3 × y 1 − x 1 × y 3 − x 2 × y 1 − x 3 × y 2 ) / 2 S_△=(x_1\times y_2+x_2\times y_3+x_3\times y_1-x_1\times y_3-x_2\times y_1-x_3\times y_2){\kern 2pt}/{\kern 2pt}2 S=(x1×y2+x2×y3+x3×y1x1×y3x2×y1x3×y2)/2,其中 x 1 、 x 2 、 x 3 , y 1 、 y 2 、 y 3 x_1、x_2、x_3,y_1、y_2、y_3 x1x2x3y1y2y3分别代表三个顶点的横坐标、纵坐标,计算结果可能为负数
3.2Math类的abs方法计算一个数的绝对值,称为绝对值操作,返回类型取决于注入参数的类型,例如:
  ▲ Math.abs(-1)得到1
  ▲ Math.abs(1.5)得到1.5
  ▲ 以此类推

四、算法思想

4.1 定义并输入六个float类型的浮点数x1y1x2y2x3y3,分别代表三个顶点的横坐标和纵坐标;
4.2 定义float类型的浮点数ans=Math.abs(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2)/2,代表三个顶点构成三角形的面积,通过"%.2f"格式输出ans


五、Java程序

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        float x1 = input.nextFloat(); // 定义并输入第1个顶点的横坐标
        float y1 = input.nextFloat(); // 定义并输入第1个顶点的纵坐标
        float x2 = input.nextFloat(); // 定义并输入第2个顶点的横坐标
        float y2 = input.nextFloat(); // 定义并输入第2个顶点的纵坐标
        float x3 = input.nextFloat(); // 定义并输入第3个顶点的横坐标
        float y3 = input.nextFloat(); // 定义并输入第3个顶点的纵坐标
        // 利用高斯鞋带公式定义并计算三角形面积,计算结果可能为负,通过abs方法得到绝对值
        float ans = Math.abs(x1 * y2 + x2 * y3 + x3 * y1 - x1 * y3 - x2 * y1 - x3 * y2) / 2;
        System.out.printf("%.2f", ans); // 保留2位小数输出ans
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

江苏科技大学_计算机学院_潘磊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值