鞋带公式——多边形面积求和

个人博客:The Blog Of WaiterXiaoYY 欢迎来互相交流学习。

啥是鞋带公式(shoelace)

Shoelace公式,也叫高斯面积公式,是一种数学算法,可求确定区域的一个简单多边形的面积。

该多边形是由它们顶点描述笛卡尔坐标中的平面

用户交叉相乘相应的坐标以找到包围该多边形的区域,

并从周围的多边形中减去该区域以找到其中的多边形的区域。

之所以称为鞋带公式,是因为对构成多边形的坐标进行恒定的交叉乘积,就像系鞋带一样。

——以上来自维基百科。


长的很像鞋带

为什么叫做鞋带公式,这是因为在计算的过程很像鞋带一样缠绕着,

比如一个多边形(三角形),

三个顶点分别是 A:(x1, y1) , B:(x2, y2) , C:(x3, y3)

鞋带公式是这样子算的:

在这里插入图片描述

S 三 角 形 = 0.5 ∗ ( ( x 1 ∗ y 2 + x 2 ∗ y 3 + x 3 ∗ y 1 ) − ( y 1 ∗ x 2 + y 2 ∗ x 3 + y 3 ∗ x 1 ) ) S三角形 = 0.5 * ((x1 * y2 + x2 * y3 + x3 * y1) - (y1 * x2 + y2 * x3 + y3* x1)) S=0.5((x1y2+x2y3+x3y1)(y1x2+y2x3+y3x1))

我们代个数进去试试A:(0, 4) , B:(0, 0) , C:(3, 0)

代进公式中:

S 三 角 形 = 0.5 ∗ ( ( 0 ∗ 0 + 0 ∗ 0 + 3 ∗ 4 ) − ( 4 ∗ 0 + 0 ∗ 3 + 0 ∗ 0 ) ) = 6 S三角形 = 0.5 * ((0 * 0 + 0 * 0 + 3 * 4) - (4 * 0 + 0 * 3 + 0 * 0)) = 6 S=0.5((00+00+34)(40+03+00))=6

在计算多边形面积的时候很方便。


终极公式

在这里插入图片描述
公式中约定: 当下标大于 n 时,
X n + 1 = X 1 , Y n + 1 = Y 1 。 Xn+1=X1, Yn+1=Y1。 Xn+1=X1,Yn+1=Y1

  • 13
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用router-link标签进行路由跳转时,可以通过query参数来传递参数。你可以在:to属性中指定要跳转的路径,例如path:'/resourceInfo',然后在query中以键值对的方式添加要传递的参数。例如,如果要传递resourceId参数,可以这样写:<router-link :to="{path:'/resourceInfo',query:{resourceId:o.resourceId}}"> //里面写你包裹的元素 </router-link>。在接收参数的页面,你可以通过this.$route.query来获取传递的参数。例如,在created()生命周期钩子中可以使用this.resourceId = this.$route.query.resourceId来获取resourceId参数的值。\[1\] 在Angular中,使用routerLink属性进行路由跳转时,可以通过queryParams参数来传递参数。例如,如果要传递id参数,可以这样写:<a \[routerLink\]="\['/product'\]" \[queryParams\]="{id:1}">详情</a>。在接收参数的组件中,可以通过ActivatedRoute来获取参数的值。例如,在ngOnInit()生命周期钩子中,可以使用this.routeInfo.snapshot.params\['id'\]来获取id参数的值。另外,也可以使用this.routeInfo.params.subscribe()方法来订阅参数的变化,并在回调函数中获取参数的值。\[2\]\[3\] #### 引用[.reference_title] - *1* [vue使用router-link跳转时传递参数](https://blog.csdn.net/Yanzudada/article/details/105978653)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Angualr routerLink 两种传参方法及参数的使用](https://blog.csdn.net/qq_29483485/article/details/81513013)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值