0

円の円周と画像(円の原点が画像外)の交点で表される線の座標を効率的に求めたいと思います。現在、Python でループを使用して、画像の 1 つの端から開始し、一度に 1 ステップずつ画像を移動しています。各ステップは、一定の距離 (たとえば 0.01 インチ) 移動します。その距離を移動するために必要な角度を計算し、極座標幾何学の公式を使用して次のピクセル座標を定義します。これはすべて問題なく動作しますが、時間がかかります。円の半径が大きくなるにつれて、画像にこれらの線の多くを作成しています。

組み込み関数または配列ベースの数式を使用して、アルゴリズムに多くのステップを含める必要がないようにする方法はありますか? 基本的に、python 2でこれを達成する最も効率的な方法は何ですか?

ありがとう、rb3

4

1 に答える 1

0
# circle parameters 
x0 = -5
y0 = -5
R = 25
# image size
max_x = 100
max_y = 100
# sample points
theta = np.linspace(0, 2*np.pi, 2048) # make bigger if you have huge images
# the pixels that get hit
xy = list(set([xy for xy in zip( (R * cos(theta) - x0).astype(int), (R * sin(theta) - y0).astype(int)) if
               xy[0] >= 0 and xy[0] < max_x and xy[1] >= 0 and xy[1] < max_y]))
于 2013-09-14T18:15:37.560 に答える