日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

awk 求三角形重心

發布時間:2025/1/21 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 awk 求三角形重心 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說明藍色=命令名稱

??????淺綠=命令參數

??????淺藍=選項

????? 紫色=目錄

????? 系統環境:CentOS??5.7? x86_64

問題如下:

各位大俠,最近遇到一樁急事,解決不了,煩請能力者為我解憂。
問題:有A文件如下(三角形的三個點,共3個三角形):
x006 x386 x389
......
x386 x389 x400
......
x081 x397 x401
B文件如下(點的坐標,X,Y,Z):
290.2 142.8 120.3537 x006
289.1 141.6 121.2275 x386
......
291.3 141.0 120.7663 x389
288.9 138.9 121.6213 x400
275.8 139.1 121.2721 x081
275.5 139.3 121.3628 x397
275.4 138.9 122.0949 x401
想要實現的效果:把A文件中的三角形的三個點帶入B文件中,讓B文件中符合點名要求的第一列相加并除以3,第二列相加并除以3,得到A文件中三角形的重心位置,比如第一個三角形:x006,x386,x389,其重心位置為:290.2 141.8,如何用AWK實現呢?
急!
?

文件如下圖:

方法awk '{if(NR==FNR){a[$4,1]=$1;a[$4,2]=$2}else{print $0" : "(a[$1,1]+a[$2,1]+a[$3,1])/3,(a[$1,2]+a[$2,2]+a[$3,2])/3}}' b a

網友方法awk 'NR==FNR{x[$NF]=$1;y[$NF]=$2;next};{for(i=0;i<=NF;++i){ xx+=x[$i];yy+=y[$i];};print xx/3, yy/3;}' b a

?

轉載于:https://blog.51cto.com/linux521/819632

總結

以上是生活随笔為你收集整理的awk 求三角形重心的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。