我就废话不多说了,大家还是直接看代码吧!

import numpy as np

#已知平行四边形三个点,求第四个点

#计算两点之间的距离

def CalcEuclideanDistance(point1,point2):

vec1 = np.array(point1)

vec2 = np.array(point2)

distance = np.linalg.norm(vec1 - vec2)

return distance

#计算第四个点

def CalcFourthPoint(point1,point2,point3): #pint3为A点

D = (point1[0]+point2[0]-point3[0],point1[1]+point2[1]-point3[1])

return D

#三点构成一个三角形,利用两点之间的距离,判断邻边AB和AC,利用向量法以及平行四边形法则,可以求得第四个点D

def JudgeBeveling(point1,point2,point3):

dist1 = CalcEuclideanDistance(point1,point2)

dist2 = CalcEuclideanDistance(point1,point3)

dist3 = CalcEuclideanDistance(point2,point3)

dist = [dist1, dist2, dist3]

max_dist = dist.index(max(dist))

if max_dist == 0:

D = CalcFourthPoint(point1,point2,point3)

elif max_dist == 1:

D = CalcFourthPoint(point1,point3,point2)

else:

D = CalcFourthPoint(point2,point3,point1)

return D

print(JudgeBeveling((0,1),(1,0),(1,1)))

print(JudgeBeveling((5,39),(500,35),(496,17)))

补充知识:计算图像中任意四个点连成的四边形面积与Ground truth的IOU(Python)

1.先求任意四个点连成四边形的面积

这个问题可以用下面的图简单的看一下

图像的坐标如上图所示,大致的想法就是四个点可以确定四条线,然后进行判断,在红色区域中则为面积中的一个像素,否则不在。先求四条线的斜率

def line_slope(x1,y1,x2,y2,x3,y3,x4,y4):

k1=(y2-y1)/(x2-x1)

k2=(y3-y2)/(x3-x2)

k3=(y4-y3)/(x4-x3)

k4=(y1-y4)/(x1-x4)

return k1,k2,k3,k4

然后计算每个位置上的各个函数值

l1=int(tk1*(i-tx1)+ty1)

l2=int(tk2*(i-tx2)+ty2)

l3=int(tk3*(i-tx3)+ty3)

l4=int(tk4*(i-tx4)+ty4)

判断条件很重要,因为左边是那样排列的,所以判断条件就是

(l1<=j)&(l2>=j)&(l3>=j)&(l4<=j)

也就是在红色区域中任取一点都满足这个条件。定义一个全局变量,满足条件就+1。面积就求出来了。

其实求面积并不是我的目的

2.求相交的面积

两个面积分别求出来以后,两个面积的交集面积最简单的可以通过对照两个区域的坐标进行求解。

也就是在分别计算两个面积的时候记下符合条件的坐标(x,y)存放到数组中,最后比较两个数组中相等的元素的个数即可求解。

3.并面积

交的面积计算完后,可以用下面的公式(S1:四边形1的面积、S2:四边形2的面积、iu:交面积)

并面积=S1-iu+S2

4.IOU

交面积/并面积

5.测试

(1)

(2)

(3)

可以看到最后一种情况红框已经把ground truth包含了,所以可以直接用S2/S1来检验算法的准确性

而13882/19307=0.719013829181126,可以证明算法的准确性。

测试代码:链接

和别的算法进行比较

还是有区别的。。。

v2是向量方法计算

v3是shapely包计算

以上这篇python 已知平行四边形三个点,求第四个点的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

python写的平行四边形_python 已知平行四边形三个点,求第四个点的案例相关推荐

  1. python求平行四边形面积_python 已知平行四边形三个点,求第四个点的案例

    我就废话不多说了,大家还是直接看代码吧! import numpy as np #已知平行四边形三个点,求第四个点 #计算两点之间的距离 def CalcEuclideanDistance(point ...

  2. 已知三角形三点坐标, 求三角形的面积

    摘自:http://blog.sina.com.cn/s/blog_4cddcaa3010008u7.html 已知三角形三点坐标, 求三角形的面积 发表时间:2004-8-10 作者:未知[获得此文 ...

  3. 已知三角形三边长求面积java_已知三角形三点坐标求三角形面积.java

    已知三角形三点坐标求三角形面积 主程序代码如下: import java.util.*; public class Tringle { public static void main(String[] ...

  4. 已知三角形三点坐标求角度_高中数学:椭圆相关角度的最值问题

    圆锥曲线中的最值问题主要包括长度最值.角度最值及面积最值等. 例题:如图1,已知椭圆的中心在坐标原点,焦点在x轴上,长轴 的长为4,左准线与x轴的交点为M, . (1)求椭圆的方程: (2)若直线 , ...

  5. 已知三角形三边长怎么求面积_解三角形问题中的常见错解分析

    解三角形问题是个难点,怎样才能突破这个难点呢? 只有正确理解三角形中的边角关系,即三角形中的边角等量关系.边角的不等关系及内角和关系,才能克服这个难点. 下面快和包sir一起对解三角形问题中的常见错误 ...

  6. 已知三角形三点坐标求角度_2019高考数学:解三角形——正弦定理和余弦定理的解题技巧和模型...

    正弦定理.余弦定理的每一个等式中都包含三角形的四个元素(三角形有三个角和三条边,三角形的边与角称为三角形的元素),如果其中三个元素是已知的(至少要有一个元素是边),那么这个三角形一定可解.关于斜三角形 ...

  7. 已知三角形三边长怎么求面积_已知三角形三边求面积的公式——海伦公式

    海伦公式又译作希伦公式.海龙公式.希罗公式.海伦-秦九韶公式,传说是古代的叙拉古国王希伦(Heron,也称海龙)二世发现的公式,是一个利用三角形的三条边长直接求三角形面积的公式.下面我们利用初中的知识 ...

  8. 【C语言】已知三角形三边长,求三角形面积

    一. 数学基础: 已知三角形的三边,计算三角形面积,需要用到海伦公式: 即p=(a+b+c)/2 二. 算法: 输入三个边长,套用海伦公式计算面积,并输出. 可以先判断是否可以构成三角形,即任意两边之 ...

  9. 已知三角形三点坐标求角度_细心研磨椭圆焦点三角形,这肯定是最全的解释。...

    点击上方蓝字关注我 因为月考赶上运动会, 继国庆之后, 感觉又放了一个小长假. 原本身体是很愿意的, 可是, 刚讲的解析几何突然被中断了, 思想上还真是有点矛盾. 因为, 想了想两天后该讲些什么, 脑 ...

最新文章

  1. NPOI导Excel样式设置
  2. [导入]郁闷`````[原]
  3. c++ 一日一练:istream.rdbuf(ostringstream.rdbuf())无效!
  4. 用800行代码做个行为树(Behavior Tree)的库(2
  5. 【机器学习应用】将在2020年实现盈利的12个基于AI和ML的最佳应用创意
  6. 设计模式的理解:组合模式 (Composite)
  7. C和C++线性表的链式存储
  8. 1.1 lambda表达式
  9. xss challenge 解题思路(1-3)
  10. .Net Core使用Ocelot网关(二) -鉴权认证
  11. JavaFX UI控件教程(十一)之Scroll Pane
  12. toarray方法_机器学习中类别变量的编码方法总结
  13. python对图像二值化_python如何二值化图像
  14. 第 12 章 执行引擎
  15. Security+ 学习笔记43 无线网络
  16. 录像机人机界面蓝屏怎么处理
  17. 跟着Cell学作图| 11.Ingenuity Pathway Analysis(IPA)
  18. 可在手机浏览器下载文件的方法
  19. 广义瑞利商_瑞利商和广义瑞利商
  20. 大数据自助分析平台系列文章(深入讲解由零开始设计一个大数据自助分析平台)

热门文章

  1. .net 学习路线感想(转)
  2. 64位ubuntu 14.04无法找到和使用32bit库
  3. 【机器学习】机器学习之梯度下降法简单应用(Python)
  4. 7-5小组日报 最终版的发布
  5. 搜索技术哪些算法模型可以实现千人千面个性化服务
  6. python 网站爬虫 下载在线盗墓笔记小说到本地的脚本
  7. 怎么花140万美元“低价”,喜提300万美元豪宅?
  8. 石油大学计算机第三次在线作业,石油大学管理会计第三次在线作业答案
  9. 浏览器大战中的搜狗浏览器
  10. Python之统计作图函数讲解(三)