楼主: mengqinqing
1005 6

[问答] R语言如何计算三角形周长 [推广有奖]

  • 8关注
  • 6粉丝

已卖:1份资源

讲师

94%

还不是VIP/贵宾

-

威望
0
论坛币
64351 个
通用积分
8.0217
学术水平
7 点
热心指数
5 点
信用等级
4 点
经验
21974 点
帖子
468
精华
0
在线时间
650 小时
注册时间
2007-11-24
最后登录
2025-6-4
毕业学校
中山大学

楼主
mengqinqing 发表于 2022-10-20 11:40:17 |AI写论文
20论坛币
请问各位,已知二维平面上三个点的坐标,如下,我用了2种方法计算出三角形周长,
问题1:为什么两方法算出来不一样,perimeter函数是怎么算的?
问题2:如何用R快速实现三角形周长的计算?


prob11 <- -180
prob12 <- -20
prob21 <- -140
prob22 <- 55
prob31 <- 10
prob32 <- 0
#method1
dist12 <- sqrt((prob22-prob12)^2+(prob21-prob11)^2)
dist13 <- sqrt((prob32-prob12)^2+(prob31-prob11)^2)
dist23 <- sqrt((prob22-prob32)^2+(prob21-prob31)^2)
(dist123 <- dist12+dist13+dist23) #435.8152
#method2
library(geosphere)
xy <- rbind(c(prob11,prob12), c(prob21,prob22), c(prob31, prob32))
perimeter(xy)  #40005149

最佳答案

llb_321 查看完整内容

矩阵的生成按你给的顺序则如下,结果是一个3X2矩阵,一样的。
关键词:R语言 三角形 Meter 如何用 R函数

本帖被以下文库推荐

用自己的力量站在自己的位置

沙发
llb_321 在职认证  发表于 2022-10-20 11:40:18
矩阵的生成按你给的顺序则如下,结果是一个3X2矩阵,一样的。

  1. Tri1 <- matrix(c(-180,-20,-140,55,10,0), 3, byrow = T)
复制代码

藤椅
llb_321 在职认证  发表于 2022-10-20 14:51:30
第一种方法:计算的是直角坐标平面上的三角形周长,两点间距离是在坐标系上的距离。
第二种方法:用的是球面三角学的包,虽然你所给出的参数与上面一样,但在perimeter()函数中,是作为经纬度参与计算的,默认的a和f参数是地球的,而结果是地球表面上的三角周长,单位是米。

至于有没有更简单的计算周长的方法,第一种不是最简单最直接的吗?
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

板凳
mengqinqing 发表于 2022-10-20 21:19:01
llb_321 发表于 2022-10-20 14:51
第一种方法:计算的是直角坐标平面上的三角形周长,两点间距离是在坐标系上的距离。
第二种方法:用的是球 ...
谢谢回复!第二种方法明白,我的主要问题是第一种方法R有函数实现吗?(除了自己把那几行放到自编函数里)是不是有能提升一点速度的算法?在多次运算中还是有用的。

报纸
llb_321 在职认证  发表于 2022-10-21 10:07:02
mengqinqing 发表于 2022-10-20 21:19
谢谢回复!第二种方法明白,我的主要问题是第一种方法R有函数实现吗?(除了自己把那几行放到自编函数里) ...
其实不用自编函数,试试下面的代码
  1. Tri<-matrix(c(-180,-140,10,-20,55,0),3)
  2. sum(sqrt(dist(Tri[,1])^2+dist(Tri[,2])^2))
复制代码

地板
mengqinqing 发表于 2022-10-24 11:59:40
llb_321 发表于 2022-10-21 10:07
其实不用自编函数,试试下面的代码
谢谢回复!

7
llb_321 在职认证  发表于 2022-10-28 11:07:21
mengqinqing 发表于 2022-10-24 11:59
谢谢回复!
呵呵,我之前说的代码其实也搞复杂了,你再试试这个,最简单的:
  1. Tri <- matrix(c(-180,-20,-140,55,10,0), 3, byrow = T)
  2. sum(dist(Tri))
复制代码

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 10:17