Pythonでポリゴンを初期状態にリセットするプログラム
n個の頂点、n個の反転軸、およびn個の回転点を持つポリゴンがあるとします。反転軸と回転点については、次のことが当てはまります
。- nが奇数の場合、各反転軸は1つの頂点と反対側の中央のみを通過します。
- nが偶数の場合、軸の半分は反対側の頂点のペアを通過し、残りの半分は反対側のペアを通過します。
- 次の2つの軸の角度は360/2nです。
次に、提供されたポリゴンを回転させます。 n種類の回転子があり、k回転子は、軸kでポリゴンを時計回りに(360 x k)/n度回転します。整数のいくつかのペアを含むリスト入力リストがあります。ペアの最初の整数は、ポリゴンを反転するか回転させるかを表します。最初の整数が1の場合、ポリゴンは回転します。2の場合、ポリゴンは反転します。 2番目の整数はkです。ポリゴンを反転すると、軸kで反転します。それ以外の場合は、回転すると360/2nの角度で回転します。次に、リストが空でないときに回転と反転が行われます。
ここでのタスクは、ポリゴンを初期位置にリセットできるように、リストに別の要素を追加することです。
画像は、2種類のポリゴンの回転軸を指定しています。
したがって、入力がn =6、input_list =[[1、2]、[1、4]、[2、3]、[2、5]、[1、6]]の場合、出力は次のようになります。 (1、4)
変換後、4番目の軸に沿って回転すると、ポリゴンが初期位置にリセットされます。
これを解決するには、次の手順に従います-
- decision_var:=False
- 位置:=0
- input_listの各項目について、
- x:=item [0]
- y:=item [1]
- xが1と同じ場合、
- 位置:=位置+ y
- それ以外の場合
- 位置:=y-位置
- decision_var:=not(decision_var)
- position:=position mod n
- decision_varがゼロ以外の場合
- ペアを返す(2、位置)
- それ以外の場合、
- ペアを返す(1、n-位置)
例
理解を深めるために、次の実装を見てみましょう-
def solve(n, input_list): decision_var = False position = 0 for item in input_list: x = item[0] y = item[1] if x == 1: position += y else: position = y - position decision_var = not decision_var position = position % n if decision_var: return (2, position) else: return (1, n - position) print(solve(6, [[1, 2], [1, 4], [2, 3], [2, 5], [1, 6]]))
入力
6, [[1, 2], [1, 4], [2, 3], [2, 5], [1, 6]]
出力
(1, 4)
-
与えられたポリゴンの内側または境界にある与えられた点をチェックするか、Pythonではないかをチェックするプログラム
ポリゴンを表すデカルト点[(x1、y1)、(x2、y2)、...、(xn、yn)]のリストがあり、xとyの2つの値があるとします。 (x、y)がこのポリゴンの内側にあるのか、境界上にあるのかを確認してください。 したがって、入力がpoints =[(0、0)、(1、3)、(4、4)、(6、2)、(4、0)] pt =(3、1) その場合、出力はTrueになります これを解決するには、次の手順に従います- ans:=False 0からポリゴンのサイズ-1までの範囲のiの場合、実行します (x0、y0):=ポリゴン[i] (x1、y1):=ポリゴン[(i + 1)ポリゴンのm
-
HPラップトップをデフォルトの状態に工場出荷時にリセットする方法
工場出荷時のリセットは、頑固な問題が発生しているとき、コンピューターを譲渡しているとき、またはコンピューターを販売しているときに、適切な修正と見なされます。リストは続き、この記事では、リセットするための2つの簡単な方法を紹介します。 リセットプロセスにより、コンピューター上のすべてのユーザー設定が消去されます。ファイルを保持するか、完全にクリーンリセットするかを尋ねられます。ケースに応じて、いずれかのオプションを選択できます。 HPラップトップをリセットする方法は2つあります。ログイン中にリセットするか、回復環境からリセットすることができます。 方法1:Windows設定を使用したリセット