投稿

ラベル(VL-BASIC)が付いた投稿を表示しています

VL-BASICで結晶格子 (1回目)

イメージ
2021/8/2(月) VL-BASICで結晶格子 (1回目)   面心立方格子   r:原子半径、a:単位格子の一辺の長さ   上記正方形の図より、三平方の定理を使用して a 2  + a 2  = (4r) 2   を変形して (4r) 2  = 2a 2   、 4r = a√2 r = {(√2)/4}a   または、 a 2  + a 2  = (4r) 2   を変形して 2a 2  = (4r) 2   、 a 2  = 8r 2   、 a = r 2 √8 a = (2√2)r   c = a/2 = r√2 とし、 (0,0,0)を単位格子の 中心とすると ( c, 0, 0), ( 0, c, 0), ( 0, 0, c) (-c, 0, 0), ( 0,-c, 0), ( 0, 0,-c) ( c, c, c), ( c,-c, c), (-c, c, c), (-c,-c, c) ( c, c,-c), ( c,-c,-c), (-c, c,-c), (-c,-c,-c) を中心とする半径 rの14個の球を単位格子でカット して表示しています     充填率を求めて見ました   半径 Rの球の体積Vを求める   図  z = rcosφ、d = rsinφ   点 P(r, θ, φ)、原点O(0, 0, 0)とする 極座標は 動径 (半径)方向をr z軸回りのx軸方向からの角度をθ z軸から線分OPまでの角度をφとする   直交座標 P(x, y, z)との関係 点 Pのx-y平面へ投影した点の原点からの 距離を dとするとd = rcosφより x = dcosθ = rcosθsinφ y = dsinθ = rsinθsinφ P(x, y, z) = P(rcosθsinφ, rsinθsinφ, rcosφ)   中心から r離れた微小片の体積dvを考えると r方向の微小距離をdr φ(ラジアン)方向の微小角dφ分の距離は r・dφ(半径rの円弧長さ) θ(ラジアン)方向の微小角dθ分の距離は d・dθ = rsinφ・dθ(半径dの円弧長さ)となり dv = r 2 sinφ・drdθdφ V = ∫dv = ∫∫∫r 2 dsinφ・drdθdφ (r = 0~R, θ=0~2π, φ=0~π) = ∫∫[(r 3 /3)s

VL-BASICで3乗の展開の図(2回目)

イメージ
2021/7/24(土) VL-BASICで3乗の展開の図(2回目)   三項式の展開   (a + b + c) n  = (a + b + c)(a + b + c)… 右辺のn個の(a + b + c)から aをp個、bをq個、cをr個選んだ項は a p b q c r  (p + q + r = n)となり n個のaからp個のaを選び 残りn-p個からq個のbを選ぶ組合せ になっているので a p b q c r  の係数は n C p n-p C q  となり   nCp = nPp/p! = n!/{(n-p)!p!}と p + q + r = n ⇒ n - p - q = r より n C p n-p C q  = [n!/{(n-p)!p!}][(n-p)!/{(n-p-q)!q!}] = n!/(p!q!r!) となり、これは aがp個、bがq個、cがr個の順列(並べ方の数) になります   (a + b + c) n   = ΣΣ{n!/(p!q!r!)}a p b q c r  (r = n - q - r) (q = 0~n-p内)(p = 0~n 外)   (a + b + c) 3   = aaa + 3aab + 3aac + 3abb + 6abc + 3acc + bbb + 3bbc + 3bcc + ccc a > b > cとして図形を表示しました   blg~.zip(cub002v.bas)は 以下のリンクからダウンロードできます V L-BASIC(N88-BASIC互換?)ホームページ Readme.txtを読んで遊んで下さい

VL-BASICで3乗の展開の図 (1回目)

イメージ
2021/7/22(木) VL-BASICで 3乗の展開の図 (1回目) 二項式の展開   (a + b) n  = (a + b)(a + b) … (a + b) 右辺の n個の(a + b)から aをn-i個、bをi個選んだ項はa n-i b i   となり n個のbからi個のbを選ぶ (= n個のaからn-i個のaを選ぶ) 組み合わせは n C i   通りとなる i = 0~nまですべての場合の和が展開式と なるので、二項定理 (a + b) n  = Σ n C i a n-i b i  (i = 0~n) を導ける   例 (a + b) 3  = (a + b)(a + b)(a + b)       1回目 2回目 3回目   を展開した各項は、 a,bどちらかを 3回選んだ積になっており   aaa, aab, aba, abb, baa, bab, bba, bbb   aab (またはabaやbaaも同じ)つまり aが2回、bが1回の組合せは 3個中2個aを選ぶ、または、 3個中1個bを選ぶ、選び方と同じなので 3 C 2  = 3 C 1  = 3通り(上記図でも3通りと分かる) となる (aabの並べ方3!/(2!1!)に等しい) (abbも同じ) 同様に aaa(とbbb)は 3 C 3  = 3 C 0  = 1通り よって (a + b) 3  = Σ n C i a n-i b i  (i = 0~3) = a 3  + 3a 2 b + 3ab 2  + b 3     n = 0~を縦に、i = 0~nを横に n C i   の値を 並べたものをパスカルの三角形と言う n = 0       1 n = 1      1 1 n = 2     1 2 1 n = 3    1 3 3 1 n = 4   1 4 6 4 1 …   下記の通り、各数値は 1段上の左右の数値の和になっている   (a + b) 2  = a 2  + 2ab + b 2   (a + b) 3  = (a 2  + 2ab + b 2 )(a + b)        1   2     1 = a 3  + (a 2 )b + (2ab)a + (2ab)b + (b 2 )a + b 3     1     1   +  2      

VL-BASICで動くレイトレーシング (3回目)

イメージ
2021/7/18(日) VL-BASICで動くレイトレーシング (3回目)   by ULproject   VL-BASICの拡張命令でレイトレーシングです CPUのみの計算で動いています   フォトンマッピングによる集光模様を表示してみました 移動はブースター方式 (宇宙船を操作している感覚)にし 裸眼立体視も表示してみました   blg~.zip(mray003v.bas)は 以下のリンクからダウンロードできます VL-BASIC(N88-BASIC互換?)ホームページ Readme.txtを読んで遊んで下さい   操作方法は hキーで表示されます

VL-BASICで動くレイトレーシング (2回目)

イメージ
2021/7/14(水) VL-BASICで動くレイトレーシング (2回目)   by ULproject   VL-BASICの拡張命令でリアルタイムレイトレーシング です CPUのみの計算で動いていますので コア数 (32スレッドまで)が多いほど速くなります   雪だるまとトーラス (ドーナツ)と鏡を配置し 移動はブースター方式 (宇宙船を操作している感覚)にし 裸眼立体視も表示してみました   blg~.zip(mray002v.bas)は 以下のリンクからダウンロードできます VL-BASIC(N88-BASIC互換?)ホームページ Readme.txtを読んで遊んで下さい   操作方法は hキーで表示されます

VL-BASICで動くレイトレーシング

イメージ
2021/7/10(土) VL-BASICで動くレイトレーシング   by ULproject   HTMLで動くレイトレーシング   を VL-BASICの拡張命令で作ってみました   VL-BASICは行列による移動になりますので mray003.html が一番近いです (VL-BASIC拡張命令では点の大きさの変更には 対応していませんので省略しています )   以下、モデル (球)の配置の説明 mray003.htmlのModel関数と同じように作りました   *MODEL GPU MATERIAL(PUSH) GPU MATRIX(MODE, MODEL) ' GPU MATERIAL(SPECULAR, 1.0, 1.0, 1.0) GPU MATERIAL(SHININESS, 10.0) GPU MATERIAL(REFLECT, 0.0, 0.0, 0.0) GPU MATERIAL(CLARITY, 0.0, 0.0, 0.0) GPU MATERIAL(REFRACT, 1.0) ' 光源 GPU MATERIAL(LIGHT    , 1.0, 1.0, 1.0) '--- 光源の光の色と強さ GPU MATERIAL(ATTENUATE, 1.0, 0.0, 0.0) '--- 光減衰(0,1,2乗の係数) GPU MATERIAL(DIFFUSE, 1.0, 1.0, 1.0) GPU MATRIX(PUSH) GPU TRANSLATE(-500, 500, 500) GPU SPHERE(2) GPU MATRIX(POP) GPU MATERIAL(LIGHT    , 0.0, 0.0, 0.0) '--- 光源の光の色と強さ ' 大球 GPU MATERIAL(DIFFUSE, 0.0, 1.0, 1.0) GPU MATRIX(PUSH) GPU TRANSLATE(3, 8, -80) GPU SPHERE(18) GPU MATRIX(POP) ' 小球 GPU MATERIAL(DIFFUSE, 1.0, 1.0, 0.0) GPU MATRIX(PUSH) GPU TRANSLATE(-6, 14, -60) GPU SPHERE(6) GPU MATRIX(P