python用海伦公式求面积_Python:平面直角坐标系下用三点求所构三角形面积

我使用了一种特殊方式,计算平面直角坐标系下三点所构成(如果可行的话)的三角形的面积。这个方法,不同於常见的海伦公式。

设此三点坐标分别为:

算出最大最小的

,并根据三点坐标,虚构出一个矩形,两边分别平行於
轴、
轴。可知其面积公式如下:

再在其基础上,减去三个虚拟的三角形,其面积分别为:

剩下的就是三点所构成(如果可以的话)的三角形的面积。

Python 3 能实现此需求,代码如下:

x1, y1, x2, y2, x3, y3 = list(map(float, (input().split())))x_max, x_min = max(x1, x2, x3), min(x1, x2, x3)
y_max, y_min = max(y1, y2, y3), min(y1, y2, y3)virtual_rectangle = (x_max - x_min) * (y_max - y_min)total_virtual_triangle = 0total_virtual_triangle += abs((x1 - x2) * (y1 - y2)) / 2
total_virtual_triangle += abs((x1 - x3) * (y1 - y3)) / 2
total_virtual_triangle += abs((x2 - x3) * (y2 - y3)) / 2real_area = virtual_rectangle - total_virtual_triangleprint('The area is:%.2f' % real_area)

另外,谁能分享一下,怎样用列表或枚举等功能,简化下面这些代码:

total_virtual_triangle += abs((x1 - x2) * (y1 - y2)) / 2
total_virtual_triangle += abs((x1 - x3) * (y1 - y3)) / 2
total_virtual_triangle += abs((x2 - x3) * (y2 - y3)) / 2

其中最核心的工作,就是依次计算每两点间横纵坐标各自的差。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[LeetCode] 628. 三个数的最大乘积(Java)

[LeetCode] 628. 三个数的最大乘积(Java) 1.题目描述 给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例 1:输入:nums [1,2,3] 输出:6 示例 2:输入:nums …

[INS-30131] 执行安装程序验证所需的初始设置失败。

安装oracle11g或12C碰到“无法访问临时位置”的问题,详细信息如下: [INS-30131]执行安装程序验证所需的初始设置失败(原因:无法访问临时位置) 操作 - 请确保当前用户具有访问临时位置所需的权限。 解决方案1&#xff…

iview select 怎么清空_iView各种组件清空重置

表单注意事项: prop属性要和表单对象中的属性名一致html:重置js:data () {return {formFilter: {},}},methods: {handleReset (name) {// 或者手动将各个属性置空this.$refs[name].resetFields()}}穿梭框html: 首先通过ref获取到穿梭框ref"refTransfer"&g…

Navicat连接Mysql 8.0.16报错:Client does not support authentication protocol requested by server?

解决方法的命令如下: 切换到mysql安装目录下 :C:\Program Files\MySQL\MySQL Server 8.0\bin 登录进去执行以下命令 use mysql; alter user rootlocalhost identified with mysql_native_password by ********; flush privileges;

[LeetCode] 645. 错误的集合(Java)

[LeetCode] 645. 错误的集合(Java) 1.题目描述 集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代…

android 结束if循环_(第五讲)if 分支语句和 while 循环

本文首发于微信公众号「烽哥带你学Android」,工作日每日更新1x0 switch 分支语句昨天我们最后学习了分支结构中的 if 条件语句。其实和 if 条件语句还有个兄弟 —— switch 分支语句。switch 语句由一个控制表达式和多个 case 标签组成。看到一堆 case 标签了吧&…

[LeetCode] 697. 数组的度(Java)

[LeetCode] 697. 数组的度(Java) 1.题目描述 给定一个非空且只包含非负数的整数数组 nums,数组的 度 的定义是指数组里任一元素出现频数的最大值。 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。 示例 1&#xff…

判断输入的日期字符串是否小于当前日期

package com.wonders; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; /** * 日期公共处理类 * author Liyongyong * */ public class DateUtils { /** * 判断是否是过去的日期 * para…

[LeetCode] 448. 找到所有数组中消失的数字(Java)

[LeetCode] 448. 找到所有数组中消失的数字(Java) 1.题目描述 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。 示例 1:输入&#xf…

饥荒联机版连不上服务器_饥荒联机版无法连接klei服务器及刷不出服务器解决方法一览...

其实有时候连不上klei服务器和刷新不出服务器列表,是dns的问题。尤其一些三级宽带,像什么某城,某博士。就是被解析到了一个无法连通的服务器上。这时候换dns服务器,或者刷新dns缓存,直到找到一个能连通的服务器&#x…

Oracle12c部署,允许远程访问

Oracle的版本及类型:12c Oracle本地访问host为localhost,和其他关系型数据库mysql,sql server一样,Oracle远程访问同样需要修改host等参数。 因此,在部署Oracle前,需要确认的事只有一个:确保安…

renrenfast开源项目打包过程,前端使用vue element-UI,前后端分离,打包为一个jar包运行

项目使用的是renrenfast2.0 框架,后台springboot,前端vueelement-ui。项目本身有shiro拦截机制,需要放开static路径下文件,才可以访问。 步骤如下: 1.前端:npm run build (1)在dist目录下有3个文件&…

opencv对图像是软解码_C ++ OpenCV解码缓慢

I send a byte array of an image from C# to a C Library. I decode the image with OpenCV (Version 3.3.1) BMP images are fast in decoding but JPEG images are slow.How i can speed up the decoding time for JPEG images? (Multithreading, GPU, ...?)Performance o…

[算法] 原地哈希算法(Java)

[算法] 原地哈希算法(Java) 1.定义 原地哈希算法是指将原数组当成哈希表, 不开辟额外空间. 2.适用条件 原数组总所有数字范围都不超过数组长度, 也就是,给定一个数组nums, 原地哈希应用范围为[0, nums.length], 将数组元素本身作为nums的下标,也就是, nums[nums[i]]. 3.举…

[LeetCode] 442. 数组中重复的数据(Java)

[LeetCode] 442. 数组中重复的数据(Java) 1.题目描述 给你一个长度为 n 的整数数组 nums ,其中 nums 的所有整数都在范围 [1, n] 内,且每个整数出现 一次 或 两次 。请你找出所有出现 两次 的整数,并以数组形式返回。 你必须设计并实现一个…

python中的bs4怎么导入_在Python 3.5导入BS4

I have installed both Python 3.5 and Beautifulsoup4. When I try to import bs4, I get the error below. Is there any fix for that? Or should I just install Python 3.4 instead?Please be very explicit - I am new to programming. Many thanks!Traceback (most re…

通过stream去重_Java 8 Stream.distinct() 列表去重的操作

在这篇文章里,我们将提供Java8 Stream distinct()示例。 distinct()返回由该流的不同元素组成的流。distinct()是Stream接口的方法。 distinct()使用hashCode()和equals()方法来获取不同的元素。因此,我们的类必须实现hashCode()和equals()方法。 如果distinct()正在处理有序…

基于Java学院网页的搜索引擎设计和实现

项目运行部署: 首先导入项目MyHeritrix 然后把jar包加到项目中运行类Heritrix访问地址http://localhost:8080/index.jsp创建一个job 6.然后写name和你自己的url 7.然后修改modules,只需要修改select writes和select post processors 后面导入第二个程序…

[LeetCode] 41. 缺失的第一个正数(Java)

[LeetCode] 41. 缺失的第一个正数(Java) 1.题目描述 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1:输入:nums [1,2,0] 输出&#x…