回覆列表
  • 1 # 使用者2716693543740

    假設三角形三個頂點為:A,B,C首先:求得兩個向量ab = B - Aac = C - A。然後:使用rand()獲得兩個0~1之間的隨機實數x, y如果x+y>1, 那麼令x"=1-x, y"=1-y如果x+y<=1, 那麼令x"=x, y"=y最後:隨機點 = A + x" * ab + y" * ac給個影象:----------------------另見:如何在三角形(比如正三角形)裡隨機取點? - 葉飛影的回答還有個公式:P=A*(1 - sqrt(r1)) + B*sqrt(r1)*(1 - r2) + C*r2*sqrt(r1)也能做到三角形內隨機取點.----------------------至於將該問題擴充套件到三維空間中,即實現四面體內的隨機取點.假設四面體四個頂點為:A,B,C,D首先:求得三個向量ab = B - Aac = C - Aad = D - A然後:使用rand()獲得三個0~1之間的隨機數u, v, w如果u+v+w>2, 那麼令u"=1-u, v"=1-v, w"=1-w 如果u+v+w<1, 那麼令x"=x, y"=y, w"=w否則重新生成u, v, w這三個隨機數.最後:隨機點 = A + u" * ab + v‘ * ac + w"*ad給個影象:

  • 中秋節和大豐收的關聯?
  • 高中數學排列組合以及機率的所有計算方法以及公式?