[幾何] 請教有關程式碼裡所用的數學式子
各位大大好
最近在看有關three js裡面的example,看到元素表的例子
https://threejs.org/examples/?q=peri#css3d_periodictable
程式碼在此
https://reurl.cc/l9qDQl
看到有一段關於 元素螺旋平均分佈在球面上
這兩行 line 298,299這兩行讓我看很久
298 const phi = Math.acos( - 1 + ( 2 * i ) / l );
299 const theta = Math.sqrt( l * Math.PI ) * phi;
298行還可以理解
但299行完全不知道為什麼要 乘上 sqrt(l * pi) // l是元素總數
我查了一下,似乎看起來是Fibonacci sphere,然後也改了程式碼
const phi = Math.acos( - 1 + ( 2 * i ) / l )
const theta = Math.PI*(1.809)*i
結果長這樣 https://i.imgur.com/E1k10nO.png

也有很類似的效果,至於為什麼會是1.809,老實說我也不清楚,我只是測了幾組
黃金比例1.618,0.608,而1.809是常用在股市的黃金比例,如果數字不對,甚至不會平均分佈在球面上
例如調成8變這樣 https://i.imgur.com/bysIHIo.png

而原程式碼sqrt(l * pi)看起來不太像是用湊的權重,如果取代成 theta = XX * phi
XX 隨便當作一個常數有時也不會螺旋均勻分布在球體
因為小弟數學真的沒有很好
想問問看板上的大大有沒有人知道原程式碼 line 299行是根據什麼paper或是原理才這樣寫
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.107.51 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Math/M.1648979143.A.EBD.html
※ 編輯: phoenixlife (59.127.107.51 臺灣), 04/03/2022 17:47:15
※ 編輯: phoenixlife (59.127.107.51 臺灣), 04/03/2022 17:54:38
推
04/03 23:22,
3年前
, 1F
04/03 23:22, 1F
→
04/03 23:22,
3年前
, 2F
04/03 23:22, 2F
→
04/03 23:22,
3年前
, 3F
04/03 23:22, 3F
有耶 有類似一樣的效果
※ 編輯: phoenixlife (59.127.107.51 臺灣), 04/03/2022 23:27:39
→
04/03 23:34,
3年前
, 4F
04/03 23:34, 4F
→
04/03 23:34,
3年前
, 5F
04/03 23:34, 5F
推
04/03 23:39,
3年前
, 6F
04/03 23:39, 6F
→
04/03 23:40,
3年前
, 7F
04/03 23:40, 7F
推
04/03 23:40,
3年前
, 8F
04/03 23:40, 8F
→
04/03 23:40,
3年前
, 9F
04/03 23:40, 9F
→
04/03 23:54,
3年前
, 10F
04/03 23:54, 10F
→
04/03 23:55,
3年前
, 11F
04/03 23:55, 11F
→
04/03 23:55,
3年前
, 12F
04/03 23:55, 12F
→
04/04 00:20,
3年前
, 13F
04/04 00:20, 13F
→
04/04 00:20,
3年前
, 14F
04/04 00:20, 14F
→
04/04 00:29,
3年前
, 15F
04/04 00:29, 15F
→
04/04 00:37,
3年前
, 16F
04/04 00:37, 16F
→
04/04 00:37,
3年前
, 17F
04/04 00:37, 17F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):