私は初心者で、Python 2.7.2でNumpyを使って何かを試していましたが、期待どおりに機能していなかったので、私が誤解している基本的なものがあるかどうかを確認したいと思いました。
三角形(trinormals)の値を計算してから、三角形インデックスの配列(trivertexidx)を使用して、三角形(vertnormals)のポイントごとの値を更新していました。ループとして私は計算していました:
for itri in range(ntriangles) :
vertnormals[(trivertidx[itri,0]),:] += trinormals[itri,:]
vertnormals[(trivertidx[itri,1]),:] += trinormals[itri,:]
vertnormals[(trivertidx[itri,2]),:] += trinormals[itri,:]
これは少し遅かったので、私はそれを次のように変更できると思いました:
vertnormals[(trivertidx[:,0]),:] += trinormals[:,:]
vertnormals[(trivertidx[:,1]),:] += trinormals[:,:]
vertnormals[(trivertidx[:,2]),:] += trinormals[:,:]
ただし、これでは同じ結果は得られません。ループを作成する別の簡単な方法はありますか?どんなポインタでもありがたいです。ここでの目的は、vertnormalsの各エントリに対して単一の値を取得し、結果を正規化することであることに注意してください。