Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでポリゴンの周囲を見つけるプログラム


順序付けられたポイントのリストが2D平面上の単純なポリゴンエンドポイントを表すとします。このポリゴンの周囲を見つける必要があります。

したがって、入力がpoints =[(0、0)、(0,5)、(3、5)、(3,0)]のような場合、出力は16になります。

Pythonでポリゴンの周囲を見つけるプログラム

2つの辺の長さは3で、2つの辺の長さは5なので、2 * 5 + 2 * 3=16です。

これを解決するには、次の手順に従います-

  • 関数getInfo()を定義します。これにはx1、y1、x2、y2が必要です
  • ユークリッド距離である((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))の平方根を返します
  • (x1、y1)と(x2、y2)の間
  • メインの方法から、次の手順を実行します
  • N:=ポイントのサイズ
  • (firstx、firsty):=points [0]
  • (prevx、prevy):=(firstx、firsty)
  • res:=0
  • 1からN-1の範囲のiについては、
    • (nextx、nexty):=points [i]
    • res:=res + getInfo(prevx、prevy、nextx、nexty)
    • prevx:=nextx
    • prevy:=nexty
  • res:=res + getInfo(prevx、prevy、firstx、firsty)
  • return res

理解を深めるために、次の実装を見てみましょう-

from math import sqrt
def getInfo(x1, y1, x2, y2):
   return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))

def solve(points):
   N = len(points)
   firstx, firsty = points[0]
   prevx, prevy = firstx, firsty
   res = 0

   for i in range(1, N):
      nextx, nexty = points[i]
      res = res + getInfo(prevx,prevy,nextx,nexty)
      prevx = nextx
      prevy = nexty
   res = res + getInfo(prevx,prevy,firstx,firsty)
   return res

points = [(0, 0), (0,5), (3, 5), (3,0)]
print(solve(points))

入力

[(0, 0), (0,5), (3, 5), (3,0)]

出力

16.0

  1. Pythonプログラムで円柱の周囲を見つける

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 直径と高さを入力し、円柱の周囲長を見つけます。 周囲長は、円柱、つまり長方形の側面図に他なりません。 したがって、周囲長=2 *(h + d) ここで、dは円柱の直径です hは円柱の高さです それでは、実装を見てみましょう 例 # Function to calculate the perimeter of a cylinder def perimeter( diameter, height ) :    return 2 * ( diameter + height )

  2. 円柱の周囲を見つけるためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 −直径と高さを入力し、円柱の周囲長を求めます 周囲は円柱の側面図、つまり長方形に他なりません したがって、周囲長=2 *(h + d) ここで、dは円柱の直径です hは円柱の高さです それでは、実装を見てみましょう 例 # Function to calculate the perimeter of a cylinder def perimeter( diameter, height ) :    return 2 * ( diameter + height ) # ma