擅长:python、mysql、java
<p>如果您可以将数据重新排列为一组包含所有三角形第一、第二和第三个顶点的<em>x,y</em>坐标的一组二维数组(例如,使用<code>(2, n)</code>,其中<code>n</code>是三角形的数量),则可以轻松地将所有三角形的计算矢量化:</p>
<pre><code>import numpy as np
# adapted from your code. here p1, p2 and p3 are (2, ...) vectors of x,y coords.
def triangle_area(p1, p2, p3):
return 0.5 * np.abs(p1[0] * (p2[1] - p3[1]) +
p2[0] * (p3[1] - p1[1]) +
p3[0] * (p1[1] - p2[1]))
n = 100000
# some random vertex data
vert_data = np.random.randn(3, 2, n)
# each of these is a (2, n) vector of x,y coordinates
P1, P2, P3 = vert_data
# a 100000-long vector of areas
areas = triangle_area(P1, P2, P3)
</code></pre>
<p>时间安排:</p>
^{pr2}$