約 2,105,464 件
https://w.atwiki.jp/ce00582/pages/1769.html
Private Sub Command1_Click() Dim byear As Single Dim age As Single Dim car As Single Dim mis(15 To 64, 1 To 49) As Single Dim mos(15 To 64, 1 To 49) As Single Dim m2by(1900 To 2100, 15 To 69) As Single Dim f2by(1900 To 2100, 15 To 69) As Single Dim alpha(15 To 69) As Single Dim beta(15 To 69) As Single Dim gamma(15 To 69) As Single Dim theta(15 To 65) As Single Dim mnew(1980 To 2100, 15 To 64) As Single Dim z1 As Single Dim z2 As Single Dim z3 As Single Dim m2rate(0 To 200) As Single Dim mrate(0 To 200) As Single Dim v As Single Open "c /eli/data/男子脱退力.txt " For Input As #2 Do Until EOF(2) Input #2, a1, a2, a3, a4 age = a1 gamma(age) = a2 alpha(age) = a3 beta(age) = a4 Loop Close #2 Open "c /eli/data/再加入率.txt " For Input As #3 Do Until EOF(3) Input #3, a1, a2, a3, a4 age = a1 theta(age) = a2 Loop Close #3 Open "c /eli/gdata/変形厚生年金被保険者.txt " For Input As #5 Do Until EOF(5) Input #5, a1, a2, a3, a4 byear = a1 age = a2 m2by(byear, age) = a3 f2by(byear, age) = a4 Loop Close #5 Open "c /eli/data/男子遺族.txt " For Input As #6 Do Until EOF(6) Input #6, a1, a2, a3, a4 age = a1 m2rate(age) = a2 mrate(age) = a3 Loop Close #6 For byear = 1990 To 2080 age = 15 mis(age, 1) = m2by(byear, age) For age = 16 To 64 z1 = (1 - gamma(age - 1)) * m2by(byear, age - 1) z2 = m2by(byear, age) - z1 If z2 0 Then z2 = 0 z3 = (1 - theta(age)) * z2 z4 = theta(age) * z2 mis(age, 1) = z3 z5 = 0 For car = 1 To 49 z5 = z5 + mos(age - 1, car) Next If z5 = 0 Then z5 = 1 v = z4 / z5 If v 1 Then v = 1 For car = 2 To 49 mis(age, car) = (1 - gamma(age - 1)) * mis(age - 1, car - 1) + v * mos(age - 1, car - 1) Next For car = 1 To 49 mos(age, car) = (gamma(age - 1) - alpha(age - 1) - beta(age)) * mis(age - 1, car) + (1 - alpha(age - 1) - v) * mos(age - 1, car) Next Next For age = 15 To 64 z1 = 0 For car = 1 To 25 z1 = z1 + m2rate(age) * alpha(age) * mis(age, car) Next For car = 25 To 49 z1 = z1 + m2rate(age) * alpha(age) * (mis(age, car) + mos(age, car)) Next mnew(byear, age) = z1 Next Next Open "c /eli/gdata/男子遺族新規裁定者1.txt " For Output As #4 For byear = 1990 To 2080 For age = 15 To 64 Write #4, byear, age, mnew(byear, age) Next Next Close #4 End Sub
https://w.atwiki.jp/ce00582/pages/1505.html
Private Sub Command1_Click() Dim byear As Single Dim age As Single Dim car As Single Dim mis(1985 To 2100, 15 To 64, 1 To 49) As Single Dim mos(1985 To 2100, 15 To 64, 1 To 49) As Single Dim m2by(1900 To 2100, 15 To 69) As Single Dim f2by(1900 To 2100, 15 To 69) As Single Dim mdeby(1900 To 2100, 0 To 99) As Single Dim fdeby(1900 To 2100, 0 To 99) As Single Dim alpha(15 To 69) As Single Dim beta(15 To 69) As Single Dim gamma(15 To 69) As Single Dim theta(15 To 64) As Single Dim zan(1985 To 2100, 15 To 64, 1 To 49) As Single Dim zant(1985 To 2100, 15 To 64, 1 To 49) As Single Dim mde(1985 To 2100, 0 To 99) As Single Dim fnew(1985 To 2100) As Single Dim z1 As Single Dim z2 As Single Dim z3 As Single Dim v As Single Open "c /nagoya/gdata/変形生命表.txt " For Input As #1 Do Until EOF(1) Input #1, a1, a2, a3, a4 byear = a1 age = a2 mdeby(byear, age) = a3 fdeby(byear, age) = a4 Loop Close #1 Open "c /nagoya/data/女子脱退力.txt " For Input As #2 Do Until EOF(2) Input #2, a1, a2, a3, a4 age = a1 gamma(age) = a2 alpha(age) = a3 beta(age) = a4 Loop Close #2 Open "c /nagoya/data/再加入率.txt " For Input As #3 Do Until EOF(3) Input #3, a1, a2, a3, a4 age = a1 theta(age) = a3 Loop Close #3 Open "c /nagoya/gdata/変形厚生年金被保険者.txt " For Input As #5 Do Until EOF(5) Input #5, a1, a2, a3, a4 byear = a1 age = a2 m2by(byear, age) = a3 f2by(byear, age) = a4 Loop Close #5 For byear = 1990 To 2034 age = 15 mis(byear, age, 1) = f2by(byear, age) For age = 16 To 64 z1 = (1 - gamma(age - 1)) * f2by(byear, age - 1) z2 = f2by(byear, age) - z1 If z2 0 Then z2 = 0 z3 = (1 - theta(age)) * z2 z4 = theta(age) * z2 mis(byear, age, 1) = z3 z5 = 0 For car = 1 To 49 z5 = z5 + mos(byear, age - 1, car) Next If z5 = 0 Then z5 = 1 v = z4 / z5 If v 1 Then v = 1 For car = 2 To 49 mis(byear, age, car) = (1 - gamma(age - 1)) * mis(byear, age - 1, car - 1) + v * mos(byear, age - 1, car - 1) Next For car = 1 To 49 mos(byear, age, car) = (gamma(age - 1) - alpha(age - 1) - beta(age)) * mis(byear, age - 1, car) + (1 - fdeby(byear, age) - v) * mos(byear, age - 1, car) Next Next z1 = 0 For car = 1 To 24 z1 = z1 + mis(byear, 64, car) + mos(byear, 64, car) Next fnew(byear) = z1 Next Open "c /nagoya/gdata/女子通算新規裁定者1.txt " For Output As #4 For byear = 1990 To 2100 Write #4, byear, fnew(byear) Next Close #4 End Sub
https://w.atwiki.jp/ce00582/pages/1593.html
Private Sub Command1_Click() Dim byear As Single Dim age As Single Dim car As Single Dim mis(1985 To 2100, 15 To 64, 1 To 49) As Single Dim mos(1985 To 2100, 15 To 64, 1 To 49) As Single Dim m2by(1900 To 2100, 15 To 69) As Single Dim f2by(1900 To 2100, 15 To 69) As Single Dim mdeby(1900 To 2100, 0 To 99) As Single Dim fdeby(1900 To 2100, 0 To 99) As Single Dim alpha(15 To 69) As Single Dim beta(15 To 69) As Single Dim gamma(15 To 69) As Single Dim theta(15 To 65) As Single Dim zan(1985 To 2100, 15 To 64, 1 To 49) As Single Dim zant(1985 To 2100, 15 To 64, 1 To 49) As Single Dim mde(1985 To 2100, 0 To 99) As Single Dim mnew(1985 To 2100) As Single Dim z1 As Single Dim z2 As Single Dim z3 As Single Dim v As Single Open "c /eli/data/男子脱退力.txt " For Input As #2 Do Until EOF(2) Input #2, a1, a2, a3, a4 age = a1 gamma(age) = a2 alpha(age) = a3 beta(age) = a4 Loop Close #2 Open "c /eli/data/再加入率.txt " For Input As #3 Do Until EOF(3) Input #3, a1, a2, a3, a4 age = a1 theta(age) = a2 Loop Close #3 Open "c /eli/gdata/変形厚生年金被保険者.txt " For Input As #5 Do Until EOF(5) Input #5, a1, a2, a3, a4 byear = a1 age = a2 m2by(byear, age) = a3 f2by(byear, age) = a4 Loop Close #5 For byear = 1990 To 2034 age = 15 mis(byear, age, 1) = m2by(byear, age) For age = 16 To 64 z1 = (1 - gamma(age - 1)) * m2by(byear, age - 1) z2 = m2by(byear, age) - z1 If z2 0 Then z2 = 0 z3 = (1 - theta(age)) * z2 z4 = theta(age) * z2 mis(byear, age, 1) = z3 z5 = 0 For car = 1 To 49 z5 = z5 + mos(byear, age - 1, car) Next If z5 = 0 Then z5 = 1 v = z4 / z5 If v 1 Then v = 1 For car = 2 To 49 mis(byear, age, car) = (1 - gamma(age - 1)) * mis(byear, age - 1, car - 1) + v * mos(byear, age - 1, car - 1) Next For car = 1 To 49 mos(byear, age, car) = (gamma(age - 1) - alpha(age - 1) - beta(age)) * mis(byear, age - 1, car) + (1 - alpha(age - 1) - v) * mos(byear, age - 1, car) Next Next z1 = 0 z2 = 0 For car = 1 To 24 z1 = z1 + mis(byear, 64, car) + mos(byear, 64, car) z2 = z2 + car * (mis(byear, 64, car) + mos(byear, 64, car)) Next mnew(byear) = z2 / z1 Next Open "c /eli/gdata/男子通算平均加入年数1.txt " For Output As #4 For byear = 1990 To 2100 Write #4, byear, mnew(byear) Next Close #4 End Sub
https://w.atwiki.jp/ddr_dp/pages/1465.html
Empathetic(楽) 曲名 アーティスト フォルダ 難易度 BPM NOTES/FREEZE その他 Empathetic Sota÷Des 2013 楽7 180 263 / 10 STREAM VOLTAGE AIR FREEZE CHAOS 44 37 5 21 1 楽譜面(7) / 踊譜面(11) / 激譜面(14) / 鬼譜面(-) 属性 リズム難 譜面 http //eba502.web.fc2.com/fumen/ddr/ddr2013/empathet_8b.html プレイ動画 https //www.youtube.com/watch?v=ydM4XiqDMyI (x2.0, NOTE) 解説 高BPM楽譜面でありながら裏拍が多く、結構なリズム難。BPM180なので判定そのものは甘く、これが詰めれるようになると結構な地力にも -- 名無しさん (2015-05-25 23 27 48) 名前 コメント コメント(私的なことや感想はこちら) 名前 コメント
https://w.atwiki.jp/heavymetaleye101/pages/45.html
DARK TRANQUILLITY - THE GALLERY 北欧叙情デスメタルシーン最後の砦、96年発表の2ndアルバム。 デビューアルバムではアンダース・フリーデン(現INFLAMES)がヴォーカルを務めていたが脱退。ギタリストのミカエル・スタンネがヴォーカルにスウィッチ、そして新しいギタリストとしてフレデリック・ヨハンソンを加え製作された。 まさしくメロディックデスメタルとしては最上級の仕上がりになっており、時に北欧民謡を思わせるかのようなクラシカルともとれる哀しげな旋律がデスメタル・ブルータリティとの完全融合し、ドラマティックなメロディ展開が聴き手を涙させる、まさしくメロディックデスメタルのあるべき姿ともいえるような作品だ。①のPunish My HeavenはIN FLAMESのStand Ablazeと同様、メロディックデスメタルの名曲として君臨している。ただ、曲展開のドラマ性とデスメタル・ブルータリティの激烈性に関しては完全にPunish My Heavenに上だ(もちろんStand Ablazeもとても良い曲だが)。クラシカルな美旋律に乗る強烈なデスメタル・ビート、そして叙情的なメロディギターを配しながらスピードダウンさせドラマティックに展開する様はいつ聴いても涙ものである。そしてミカエルの激情振り撒く暴虐的なデスヴォイスも魅力である。ここまでDARK TRANQUILLITYの創り上げる曲の世界観にぴったり当てはまるヴォーカリストはいないのではないのだろうか。Punish My Heaven以外でももちろん、どの曲をとってもブルータルであり、ドラマティックであり、そしてメランコリックである。ミディアムテンポナンバーもとてつもなく叙情的だ。 メロディックデスメタルの最高峰はこの作品を聴けば判る筈だ。胸を掻き毟る悲劇の音、「メロディックデスメタル」。心を打たれるアートである。 PUNISH MY HEAVEN SILENCEAND THE FIRMAMENT WITHDREW EDENSPRING THE DIVIDIND LINE THE GALLERY THE ONE BROODING WARNING MIDWAY THROUGH INFINITY LETHE THE EMPTINESS FROM WHICH I FED MINE IS THE GRANDEUR... ...OF MELANCHOLY BURNING MY FRIEND OF MISERY(Metallica Cover){Bonus}
https://w.atwiki.jp/ce00582/pages/2108.html
Private Sub Command1_Click() Dim byear As Single Dim age As Single Dim car As Single Dim mis(1985 To 2100, 15 To 64, 1 To 49) As Single Dim mos(1985 To 2100, 15 To 64, 1 To 49) As Single Dim m2by(1900 To 2100, 15 To 69) As Single Dim f2by(1900 To 2100, 15 To 69) As Single Dim mdeby(1900 To 2100, 0 To 99) As Single Dim fdeby(1900 To 2100, 0 To 99) As Single Dim alpha(15 To 69) As Single Dim beta(15 To 69) As Single Dim gamma(15 To 69) As Single Dim theta(15 To 65) As Single Dim zan(1985 To 2100, 15 To 64, 1 To 49) As Single Dim zant(1985 To 2100, 15 To 64, 1 To 49) As Single Dim mde(1985 To 2100, 0 To 99) As Single Dim mnew(1985 To 2100) As Single Dim z1 As Single Dim z2 As Single Dim z3 As Single Dim v As Single Open "c /bs/data/男子脱退力.txt " For Input As #2 Do Until EOF(2) Input #2, a1, a2, a3, a4 age = a1 gamma(age) = a2 alpha(age) = a3 beta(age) = a4 Loop Close #2 Open "c /bs/data/再加入率.txt " For Input As #3 Do Until EOF(3) Input #3, a1, a2, a3, a4 age = a1 theta(age) = a2 Loop Close #3 Open "c /dig/gdata/変形厚生年金被保険者.txt " For Input As #5 Do Until EOF(5) Input #5, a1, a2, a3, a4 byear = a1 age = a2 m2by(byear, age) = a3 f2by(byear, age) = a4 Loop Close #5 For byear = 1990 To 2034 age = 15 mis(byear, age, 1) = m2by(byear, age) For age = 16 To 64 z1 = (1 - gamma(age - 1)) * m2by(byear, age - 1) z2 = m2by(byear, age) - z1 If z2 0 Then z2 = 0 z3 = (1 - theta(age)) * z2 z4 = theta(age) * z2 mis(byear, age, 1) = z3 z5 = 0 For car = 1 To 49 z5 = z5 + mos(byear, age - 1, car) Next If z5 = 0 Then z5 = 1 v = z4 / z5 If v 1 Then v = 1 For car = 2 To 49 mis(byear, age, car) = (1 - gamma(age - 1)) * mis(byear, age - 1, car - 1) + v * mos(byear, age - 1, car - 1) Next For car = 1 To 49 mos(byear, age, car) = (gamma(age - 1) - alpha(age - 1) - beta(age)) * mis(byear, age - 1, car) + (1 - alpha(age - 1) - v) * mos(byear, age - 1, car) Next Next z1 = 0 For car = 25 To 49 z1 = z1 + mis(byear, 64, car) + mos(byear, 64, car) Next mnew(byear) = z1 Next Open "c /bs/gdata/男子新規裁定者1.txt " For Output As #4 For byear = 1990 To 2100 Write #4, byear, mnew(byear) Next Close #4 End Sub
https://w.atwiki.jp/ce00582/pages/1896.html
Private Sub Command1_Click() Dim byear As Single Dim age As Single Dim car As Single Dim mis(1985 To 2100, 15 To 64, 1 To 49) As Single Dim mos(1985 To 2100, 15 To 64, 1 To 49) As Single Dim m2by(1900 To 2100, 15 To 69) As Single Dim f2by(1900 To 2100, 15 To 69) As Single Dim mdeby(1900 To 2100, 0 To 99) As Single Dim fdeby(1900 To 2100, 0 To 99) As Single Dim alpha(15 To 69) As Single Dim beta(15 To 69) As Single Dim gamma(15 To 69) As Single Dim theta(15 To 64) As Single Dim zan(1985 To 2100, 15 To 64, 1 To 49) As Single Dim zant(1985 To 2100, 15 To 64, 1 To 49) As Single Dim mde(1985 To 2100, 0 To 99) As Single Dim fnew(1985 To 2100) As Single Dim z1 As Single Dim z2 As Single Dim z3 As Single Dim v As Single Open "c /dig/data/女子脱退力.txt " For Input As #2 Do Until EOF(2) Input #2, a1, a2, a3, a4 age = a1 gamma(age) = a2 alpha(age) = a3 beta(age) = a4 Loop Close #2 Open "c /dig/data/再加入率.txt " For Input As #3 Do Until EOF(3) Input #3, a1, a2, a3, a4 age = a1 theta(age) = a3 Loop Close #3 Open "c /dig/gdata/変形厚生年金被保険者.txt " For Input As #5 Do Until EOF(5) Input #5, a1, a2, a3, a4 byear = a1 age = a2 m2by(byear, age) = a3 f2by(byear, age) = a4 Loop Close #5 For byear = 1990 To 2034 age = 15 mis(byear, age, 1) = f2by(byear, age) For age = 16 To 64 z1 = (1 - gamma(age - 1)) * f2by(byear, age - 1) z2 = f2by(byear, age) - z1 If z2 0 Then z2 = 0 z3 = (1 - theta(age)) * z2 z4 = theta(age) * z2 mis(byear, age, 1) = z3 z5 = 0 For car = 1 To 49 z5 = z5 + mos(byear, age - 1, car) Next If z5 = 0 Then z5 = 1 v = z4 / z5 If v 1 Then v = 1 For car = 2 To 49 mis(byear, age, car) = (1 - gamma(age - 1)) * mis(byear, age - 1, car - 1) + v * mos(byear, age - 1, car - 1) Next For car = 1 To 49 mos(byear, age, car) = (gamma(age - 1) - alpha(age - 1) - beta(age)) * mis(byear, age - 1, car) + (1 - alpha(age - 1) - v) * mos(byear, age - 1, car) Next Next z1 = 0 z2 = 0 For car = 25 To 49 z1 = z1 + mis(byear, 64, car) + mos(byear, 64, car) z2 = z2 + car * (mis(byear, 64, car) + mos(byear, 64, car)) Next fnew(byear) = z2 / z1 Next Open "c /dig/gdata/女子平均加入年数1.txt " For Output As #4 For byear = 1990 To 2100 Write #4, byear, fnew(byear) Next Close #4 End Sub
https://w.atwiki.jp/ce00582/pages/1452.html
Private Sub Command1_Click() Dim byear As Single Dim age As Single Dim car As Single Dim mis(1985 To 2100, 15 To 64, 1 To 49) As Single Dim mos(1985 To 2100, 15 To 64, 1 To 49) As Single Dim m2by(1900 To 2100, 15 To 69) As Single Dim f2by(1900 To 2100, 15 To 69) As Single Dim mdeby(1900 To 2100, 0 To 99) As Single Dim fdeby(1900 To 2100, 0 To 99) As Single Dim alpha(15 To 69) As Single Dim beta(15 To 69) As Single Dim gamma(15 To 69) As Single Dim theta(15 To 64) As Single Dim zan(1985 To 2100, 15 To 64, 1 To 49) As Single Dim zant(1985 To 2100, 15 To 64, 1 To 49) As Single Dim mde(1985 To 2100, 0 To 99) As Single Dim fnewt(1985 To 2100) As Single Dim z1 As Single Dim z2 As Single Dim z3 As Single Dim v As Single Open "c /kirakira/gdata/変形生命表.txt " For Input As #1 Do Until EOF(1) Input #1, a1, a2, a3, a4 byear = a1 age = a2 mdeby(byear, age) = a3 fdeby(byear, age) = a4 Loop Close #1 Open "c /kirakira/data/女子脱退力.txt " For Input As #2 Do Until EOF(2) Input #2, a1, a2, a3, a4 age = a1 gamma(age) = a2 alpha(age) = a3 beta(age) = a4 Loop Close #2 Open "c /kirakira/data/再加入率.txt " For Input As #3 Do Until EOF(3) Input #3, a1, a2, a3 age = a1 theta(age) = a3 Loop Close #3 Open "c /kirakira/gdata/変形厚生年金被保険者.txt " For Input As #5 Do Until EOF(5) Input #5, a1, a2, a3, a4 byear = a1 age = a2 m2by(byear, age) = a3 f2by(byear, age) = a4 Loop Close #5 For byear = 1985 To 2034 age = 15 mis(byear, age, 1) = f2by(byear, age) For age = 16 To 64 z1 = (1 - gamma(age - 1)) * f2by(byear, age - 1) z2 = f2by(byear, age) - z1 If z2 0 Then z2 = 0 z3 = (1 - theta(age)) * z2 z4 = theta(age) * z2 mis(byear, age, 1) = z3 z5 = 0 For car = 1 To 49 z5 = z5 + mos(byear, age - 1, car) Next If z5 = 0 Then z5 = 1 v = z4 / z5 If v 1 Then v = 1 For car = 2 To 49 mis(byear, age, car) = (1 - gamma(age - 1)) * mis(byear, age - 1, car - 1) + v * mos(byear, age - 1, car - 1) Next For car = 1 To 49 mos(byear, age, car) = (gamma(age - 1) - alpha(age - 1) - beta(age)) * mis(byear, age - 1, car) + (1 - mdeby(byear, age) - v) * mos(byear, age - 1, car) Next Next z1 = 0 For car = 1 To 24 z1 = z1 + mis(byear, 64, car) + mos(byear, 64, car) Next fnewt(byear) = z1 Next Open "c /kirakira/gdata/女子通算新規裁定者1.txt " For Output As #4 For byear = 1985 To 2100 Write #4, byear, fnewt(byear) Next Close #4 End Sub
https://w.atwiki.jp/ce00582/pages/211.html
Private Sub Command1_Click() Dim byear As Single Dim age As Single Dim car As Single Dim mis(1985 To 2100, 15 To 64, 1 To 49) As Single Dim mos(1985 To 2100, 15 To 64, 1 To 49) As Single Dim m2by(1900 To 2100, 15 To 64) As Single Dim f2by(1900 To 2100, 15 To 64) As Single Dim mdeby(1900 To 2100, 0 To 99) As Single Dim fdeby(1900 To 2100, 0 To 99) As Single Dim alpha(15 To 69) As Single Dim beta(15 To 69) As Single Dim gamma(15 To 69) As Single Dim theta(15 To 64) As Single Dim zan(1985 To 2100, 15 To 64, 1 To 49) As Single Dim zant(1985 To 2100, 15 To 64, 1 To 49) As Single Dim mde(1985 To 2100, 0 To 99) As Single Dim mnewt(1985 To 2100) As Single Dim z1 As Single Dim z2 As Single Dim z3 As Single Dim v As Single Open "c /stream/gdata/変形生命表.txt " For Input As #1 Do Until EOF(1) Input #1, a1, a2, a3, a4 byear = a1 age = a2 mdeby(byear, age) = a3 fdeby(byear, age) = a4 Loop Close #1 Open "c /stream/data/男子脱退力.txt " For Input As #2 Do Until EOF(2) Input #2, a1, a2, a3, a4 age = a1 gamma(age) = a2 alpha(age) = a3 beta(age) = a4 Loop Close #2 Open "c /stream/data/再加入率.txt " For Input As #3 Do Until EOF(3) Input #3, a1, a2, a3 age = a1 theta(age) = a2 Loop Close #3 Open "c /stream/gdata/変形厚生年金被保険者.txt " For Input As #5 Do Until EOF(5) Input #5, a1, a2, a3, a4 byear = a1 age = a2 m2by(byear, age) = a3 f2by(byear, age) = a4 Loop Close #5 For byear = 1985 To 2034 age = 15 mis(byear, age, 1) = m2by(byear, age) For age = 16 To 64 z1 = (1 - gamma(age - 1)) * m2by(byear, age - 1) z2 = m2by(byear, age) - z1 If z2 0 Then z2 = 0 z3 = (1 - theta(age)) * z2 z4 = theta(age) * z2 mis(byear, age, 1) = z3 z5 = 0 For car = 1 To 49 z5 = z5 + mos(byear, age - 1, car) Next If z5 = 0 Then z5 = 1 v = z4 / z5 If v 1 Then v = 1 For car = 2 To 49 mis(byear, age, car) = (1 - gamma(age - 1)) * mis(byear, age - 1, car - 1) + v * mos(byear, age - 1, car - 1) Next For car = 1 To 49 mos(byear, age, car) = (gamma(age - 1) - alpha(age - 1) - beta(age)) * mis(byear, age - 1, car) + (1 - mdeby(byear, age) - v) * mos(byear, age - 1, car) Next Next z1 = 0 For car = 1 To 24 z1 = z1 + mis(byear, 64, car) + mos(byear, 64, car) Next mnewt(byear) = z1 Next Open "c /stream/gdata/男子通算新規裁定者1.txt " For Output As #4 For byear = 1985 To 2100 Write #4, byear, mnewt(byear) Next Close #4 End Sub
https://w.atwiki.jp/opengl/pages/301.html
ソフトシャドウです。 影の外側を、ぼやけさせます。 vertex.shader varying vec3 P; varying vec3 N; void main(void) { P = vec3(gl_ModelViewMatrix * gl_Vertex); N = normalize(gl_NormalMatrix * gl_Normal); gl_TexCoord[0] = gl_TextureMatrix[0] * gl_Vertex; gl_Position = ftransform(); } flagment.shader varying vec3 P; varying vec3 N; uniform sampler2DShadow shadowMap; uniform float dis;//サンプリング変位 float shadow = 0.3; float lookup(float x, float y) { return shadow2DProj(shadowMap, gl_TexCoord[0] + vec4(x, y, 0, 0)).r; } void main(void) { vec3 L = normalize(gl_LightSource[0].position.xyz - P); N = normalize(N); vec4 ambient = gl_FrontLightProduct[0].ambient; float dotNL = dot(N, L); vec4 diffuse = gl_FrontLightProduct[0].diffuse * max(0.0, dotNL); vec3 V = normalize(-P); vec3 H = normalize(L + V); float powNH = pow(max(dot(N, H), 0.0), gl_FrontMaterial.shininess); if(dotNL = 0.0) powNH = 0.0; vec4 specular = gl_FrontLightProduct[0].specular * powNH; float s = 2.0* lookup(0.0, 0.0); s += lookup(-dis, -dis); s += lookup( dis, -dis); s += lookup(-dis, dis); s += lookup( dis, dis); s /= 6.0; diffuse *= clamp(s, shadow, 1.0); gl_FragColor = ambient + diffuse + specular * s; } GLSL.h #pragma once #include stdio.h //GLSLクラス class GLSL{ public GLuint ShaderProg; GLuint VertexShader, FragmentShader; void ReadShaderCompile(GLuint Shader, const char *File);//shader fileを読み込みコンパイルする void Link( GLuint Prog );//リンクする void InitGLSL(const char *VertexFile);//GLSLの初期化 void InitGLSL(const char *VertexFile, const char *FragmentFile);//GLSLの初期化 void ON();//シェーダー描画に切り替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでした \n ); } fseek(fp, 0, SEEK_SET); fread(buf, 1, size, fp); glShaderSource(Shader, 1, (const GLchar **) buf, size); free(buf); fclose(fp); glCompileShader(Shader); glGetShaderiv( Shader, GL_COMPILE_STATUS, compiled ); if ( compiled == GL_FALSE ) { printf( コンパイルできませんでした!! %s \n , File); glGetProgramiv( Shader, GL_INFO_LOG_LENGTH, size ); if ( size 0 ) { buf = (char *)malloc(size); glGetShaderInfoLog( Shader, size, len, buf); printf(buf); free(buf); } } } void GLSL Link( GLuint Prog ){ GLsizei size, len; GLint linked; char *infoLog ; glLinkProgram( Prog ); glGetProgramiv( Prog, GL_LINK_STATUS, linked ); if ( linked == GL_FALSE ){ printf( リンクできませんでした!! \n ); glGetProgramiv( Prog, GL_INFO_LOG_LENGTH, size ); if ( size 0 ){ infoLog = (char *)malloc(size); glGetProgramInfoLog( Prog, size, len, infoLog ); printf(infoLog); free(infoLog); } } } void GLSL InitGLSL(const char *VertexFile){ GLenum err = glewInit(); if (err != GLEW_OK) { printf( Error %s\n , glewGetErrorString(err)); } printf( VENDOR= %s \n , glGetString(GL_VENDOR)); printf( GPU= %s \n , glGetString(GL_RENDERER)); printf( OpenGL= %s \n , glGetString(GL_VERSION)); printf( GLSL= %s \n , glGetString(GL_SHADING_LANGUAGE_VERSION)); VertexShader = glCreateShader(GL_VERTEX_SHADER); ReadShaderCompile(VertexShader, VertexFile); ShaderProg = glCreateProgram(); glAttachShader(ShaderProg, VertexShader); glDeleteShader(VertexShader); Link(ShaderProg); } void GLSL InitGLSL(const char *VertexFile, const char *FragmentFile){ GLenum err = glewInit(); if (err != GLEW_OK) { printf( Error %s\n , glewGetErrorString(err)); } printf( VENDOR= %s \n , glGetString(GL_VENDOR)); printf( GPU= %s \n , glGetString(GL_RENDERER)); printf( OpenGL= %s \n , glGetString(GL_VERSION)); printf( GLSL= %s \n , glGetString(GL_SHADING_LANGUAGE_VERSION)); VertexShader = glCreateShader(GL_VERTEX_SHADER); FragmentShader = glCreateShader(GL_FRAGMENT_SHADER); ReadShaderCompile(VertexShader, VertexFile); ReadShaderCompile(FragmentShader, FragmentFile); ShaderProg = glCreateProgram(); glAttachShader(ShaderProg, VertexShader); glAttachShader(ShaderProg, FragmentShader); glDeleteShader(VertexShader); glDeleteShader(FragmentShader); Link(ShaderProg); } void GLSL ON(){ glUseProgram(ShaderProg); } void GLSL OFF(){ glUseProgram(0); } GLSL ~GLSL(){ glDeleteProgram(ShaderProg); } main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #pragma comment(lib, glew32.lib ) #include stdio.h #include windows.h #include GL/glew.h #include GLSL.h #include math.h #include GL/freeglut/freeglut.h #define PAI 3.141592f float pos[][3] = { //位置(平行移動) { 0.3f, 3.5f, 0.0f},//obj0 {-0.4f, 1.5f, 0.0f} //obj1 }; float angle[][3] = {//姿勢(回転) { 0.0f, 0.0f, 0.0f}, //obj0 { 0.0f, 0.0f, 0.0f} //obj1 }; float lightPos[] = {0.0f, 6.0f, 1.0f, 1.0f};//光源位置 //カメラと視体積 struct View{ float pos[3];//位置(視点) float cnt[3];//注視点 float dist; //注視点から視点までの距離 float theta; //仰角(水平面との偏角) float phi; //方位角 //視体積 float fovY; //視野角 float nearZ; //前方クリップ面(近平面) float farZ; //後方クリップ面(遠平面) }; View view = { 0.0f, 0.0f, 0.0f,//pos(仮設定) 0.0f, 1.0f, 0.0f,//cnt 10.0f, 30.0f, 0.0f,//dist, theta, phi 40.0f, 1.0f, 100.0f//fovY,nearZ, farZ }; View view0 = view; GLSL glsl; //Windowのサイズ int width = 512; int height = 512; //アフィン変換 enum SELECT_KEY {ROTATE, SCALE, TRANSLATE, LIGHT}; SELECT_KEY sKey = TRANSLATE; //マウス操作 int xStart, yStart; bool flagMouse = false; //オブジェクト識別番号 int objNo = 0; //回転アニメーション float ang = 0.0f; //シャドウマッピング用テクスチャー int TEX_WIDTH = width; int TEX_HEIGHT = height; float fov = 120.0;//シャドウマッピングの視野角 float farZ = 50.0;//シャドウマッピングの後方クリップ面 float dis = 0.03;//サンプリング変位 GLfloat modelview[16]; //モデルビュー変換行列の保存用 void drawCylinder(float rBottom, float rTop, float height, float thick, int nSlice, int nStack){ int i, j; float x, y, z, z0, z1; float theta; float theta0 = (float)2.0*PAI/nSlice; //上底(Top) glBegin(GL_QUAD_STRIP); glNormal3f(0.0f, 0.0f, 1.0f); for(i = 0; i = nSlice; i++) { theta = theta0 * (float)i; z = height/2.0f; //内側座標 x = (rTop - thick) * cos(theta); //x成分 y = (rTop - thick) * sin(theta); //y成分 glVertex3f(x, y, z); //外側座標 x = rTop * cos(theta); //x成分 y = rTop * sin(theta); //y成分 glVertex3f(x, y, z); } glEnd(); //下底(Bottom) glBegin(GL_QUAD_STRIP); glNormal3f(0.0f, 0.0f, -1.0f); for(i = 0; i = nSlice; i++) { theta = theta0 * (float)i; z = -height/2.0f; //外側座標 x = rBottom * cos(theta); //x成分 y = rBottom * sin(theta); //y成分 glVertex3f(x, y, z); //内側座標 x = (rBottom - thick) * cos(theta); //x成分 y = (rBottom - thick) * sin(theta); //y成分 glVertex3f(x, y, z); } glEnd(); float t0, t1, r0, r1, phi; float p[2][3], n[3]; float rr = rBottom - rTop; float nz = rr / sqrt(rr*rr + height*height); float nxy = sqrt(1.0f - nz * nz); for(j = 0; j nStack; j++){ //j=0は上底(x=0, y=0, z=height/2) //2つのt座標 t0 = (float)j / (float)nStack; t1 = (float)(j+1) / (float)nStack; //底面からの高さ z0 = height * (1.0f - t0); z1 = height * (1.0f - t1); //半径 r0 = rBottom + (rTop - rBottom) * z0 / height; r1 = rBottom + (rTop - rBottom) * z1 / height; //頂点z座標 p[0][2] = z0 - height / 2.0f; p[1][2] = z1 - height / 2.0f; glBegin(GL_QUAD_STRIP); for(i = 0; i = nSlice; i++){ phi = 2.0f * PAI * (float)i / (float)nSlice; //頂点のxy座標(i=0を真後ろ) p[0][0] = r0 * cos(phi);//x座標 p[0][1] = r0 * sin(phi);//y座標 p[1][0] = r1 * cos(phi);//x座標 p[1][1] = r1 * sin(phi);//y座標 //法線ベクトル n[0] = nxy * cos(phi); n[1] = nxy * sin(phi); n[2] = nz; glNormal3fv(n);//法線ベクトル glVertex3fv(p[0]);//頂点座標 glVertex3fv(p[1]);//頂点座標 } glEnd(); } //内側側面 for(j = 0; j nStack; j++){ //j=0は上底(x=0, y=0, z=height/2) //2つのt座標 t0 = (float)j / (float)nStack; t1 = (float)(j+1) / (float)nStack; //底面からの高さ z0 = (float)height * (1.0f - t0); z1 = (float)height * (1.0f - t1); //半径 r0 = rBottom - thick + (rTop - rBottom) * z0 / height; r1 = rBottom - thick + (rTop - rBottom) * z1 / height; //頂点z座標 p[0][2] = z0 - height / 2.0f; p[1][2] = z1 - height / 2.0f; glBegin(GL_QUAD_STRIP); for(i = nSlice; i = 0; i--){ phi = 2.0f * PAI * (float)i / (float)nSlice; //頂点のxy座標(i=0を真後ろ) p[0][0] = -r0 * cos(phi);//x座標 p[0][1] = -r0 * sin(phi);//y座標 p[1][0] = -r1 * cos(phi);//x座標 p[1][1] = -r1 * sin(phi);//y座標 //法線ベクトル n[0] = nxy * cos(phi); n[1] = nxy * sin(phi); n[2] = - nz; glNormal3fv(n);//法線ベクトル glVertex3fv(p[0]);//頂点座標 glVertex3fv(p[1]);//頂点座標 } glEnd(); } } void setShadowMap(){ //テクスチャを拡大・縮小する方法の指定 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); //テクスチャの繰り返し方法の指定 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); //テクスチャ座標rを用いてテクセル値と比較 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, GL_COMPARE_R_TO_TEXTURE); //rの値がテクセル値以上なら影になる glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC, GL_LEQUAL); //結果を輝度値として取得 glTexParameteri(GL_TEXTURE_2D, GL_DEPTH_TEXTURE_MODE, GL_LUMINANCE); } void setTextureMatrix(){ glMatrixMode(GL_TEXTURE); glLoadIdentity(); glTranslatef(0.5, 0.5, 0.5); glScalef(0.5, 0.5, 0.5); glMultMatrixf(modelview); } void drawTorus(void){ setTextureMatrix(); glTranslatef(pos[0][0], pos[0][1], pos[0][2]); glRotatef(angle[0][2], 0.0f, 0.0f, 1.0f);//z軸回転 glRotatef(angle[0][1], 0.0f, 1.0f, 0.0f);//y軸回転 glRotatef(angle[0][0] + ang, 1.0f, 0.0f, 0.0f);//x軸回転 float ambient[] = { 0.0f, 0.0f, 0.7f, 1.0f}; float diffuse[] = { 0.0f, 0.0f, 0.7f, 1.0f}; float specular[]= { 0.5f, 0.5f, 0.5f, 1.0f}; glMaterialfv(GL_FRONT,GL_AMBIENT,ambient); glMaterialfv(GL_FRONT,GL_DIFFUSE,diffuse); glMaterialfv(GL_FRONT,GL_SPECULAR,specular); glMaterialf(GL_FRONT,GL_SHININESS,100); //モデルビュー変換行列に戻す glMatrixMode(GL_MODELVIEW); glPushMatrix(); glTranslatef(pos[0][0], pos[0][1], pos[0][2]); glRotatef(angle[0][2], 0.0f, 0.0f, 1.0f);//z軸回転 glRotatef(angle[0][1], 0.0f, 1.0f, 0.0f);//y軸回転 glRotatef(angle[0][0] + ang, 1.0f, 0.0f, 0.0f);//x軸回転 glutSolidTorus(0.2f, 0.5f, 20, 20); glPopMatrix(); } void drawCylinder(void){ setTextureMatrix(); glTranslatef(pos[1][0], pos[1][1], pos[1][2]); glRotatef(angle[1][2], 0.0f, 0.0f, 1.0f);//z軸回転 glRotatef(angle[1][1], 0.0f, 1.0f, 0.0f);//y軸回転 glRotatef(angle[1][0] + ang, 1.0f, 0.0f, 0.0f);//x軸回転 float ambient[] = { 0.3f, 0.3f, 0.0f, 1.0f}; float diffuse[] = { 0.7f, 0.7f, 0.0f, 1.0f}; float specular[]= { 0.5f, 0.5f, 0.5f, 1.0f}; glMaterialfv(GL_FRONT,GL_AMBIENT,ambient); glMaterialfv(GL_FRONT,GL_DIFFUSE,diffuse); glMaterialfv(GL_FRONT,GL_SPECULAR,specular); glMaterialf(GL_FRONT,GL_SHININESS,100); //モデルビュー変換行列に戻す glMatrixMode(GL_MODELVIEW); glPushMatrix(); glTranslatef(pos[1][0], pos[1][1], pos[1][2]); glRotatef(angle[1][2], 0.0f, 0.0f, 1.0f);//z軸回転 glRotatef(angle[1][1], 0.0f, 1.0f, 0.0f);//y軸回転 glRotatef(angle[1][0] + ang, 1.0f, 0.0f, 0.0f);//x軸回転 drawCylinder(1.0f, 0.7f, 2.0f, 0.3f, 20, 5); glPopMatrix(); } void drawFloor(float widthX, float widthZ, int nx, int nz){ setTextureMatrix(); int i, j; //Floor1枚当たりの幅 float wX = widthX / (float)nx; float wZ = widthZ / (float)nz; float diffuse[][4] = { { 0.9f, 0.9f, 0.9f, 1.0f}, { 0.0f, 0.8f, 0.0f, 1.0f} }; float ambient[] = { 0.2f, 0.2f, 0.2f, 1.0f}; float specular[]= { 0.5f, 0.5f, 0.5f, 1.0f}; glMaterialfv(GL_FRONT,GL_AMBIENT,ambient); glMaterialfv(GL_FRONT,GL_SPECULAR,specular); glMaterialf(GL_FRONT,GL_SHININESS,100); //モデルビュー変換行列に戻す glMatrixMode(GL_MODELVIEW); glNormal3f(0.0f, 1.0f, 0.0f); glPushMatrix(); for (j = 0; j nz; j++) { float z1 = -widthZ / 2.0f + wZ * j; float z2 = z1 + wZ; for (i = 0; i nx; i++) { float x1 = -widthX / 2.0f + wX * i; float x2 = x1 + wX; glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse[(i + j) 1]); glBegin(GL_QUADS); glVertex3f(x1, 0.0f, z1); glVertex3f(x1, 0.0f, z2); glVertex3f(x2, 0.0f, z2); glVertex3f(x2, 0.0f, z1); glEnd(); } } glPopMatrix(); } void resize(int w, int h){ glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(view.fovY, (float)w/(float)h, view.nearZ, view.farZ); width = w; height = h; } void display(void){ //ステップ1:デプスマップの作成 glClear(GL_DEPTH_BUFFER_BIT); glViewport(0, 0, TEX_WIDTH, TEX_HEIGHT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); //光源位置を視点とするモデルビュー変換行列を設定 glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluPerspective(fov, (float)TEX_WIDTH / (float)TEX_HEIGHT, 1.0, farZ); gluLookAt(lightPos[0], lightPos[1], lightPos[2], 0.0, 0.0, 0.0, 0.0, 0.0, 1.0); //設定したモデルビュー行列を保存しておく(setTextureMatrixで使用する) glGetFloatv(GL_MODELVIEW_MATRIX, modelview); glColorMask(0, 0, 0, 0); //デプスバッファには背面の奥行きを記録する glCullFace(GL_FRONT); //デプスマップ作成のためにシーンを描画 drawTorus(); drawCylinder(); // デプスバッファの内容をテクスチャメモリに転送 glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 0, 0, TEX_WIDTH, TEX_HEIGHT, 0); //ステップ2 //通常の描画設定に戻す resize(width, height); glColorMask(1, 1, 1, 1); //フレームバッファへ書き込み許可 glCullFace(GL_BACK);//背面は描画しない //カラーバッファのクリア glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity();//視点を変えるときはこの位置に必要 if(cos(view.theta*PAI/180.0) = 0.0)// = 90.0)//カメラ仰角90度でビューアップベクトル切替 gluLookAt(view.pos[0], view.pos[1], view.pos[2], view.cnt[0], view.cnt[1], view.cnt[2], 0.0, 1.0, 0.0); else gluLookAt(view.pos[0], view.pos[1], view.pos[2], view.cnt[0], view.cnt[1], view.cnt[2], 0.0, -1.0, 0.0); //光源設定// l を押した後光源位置可変 glLightfv(GL_LIGHT0, GL_POSITION, lightPos); glsl.ON(); GLint texLoc = glGetUniformLocation(glsl.ShaderProg, shadowMap ); glUniform1i(texLoc, 0); GLint disLoc = glGetUniformLocation(glsl.ShaderProg, dis ); glUniform1f(disLoc, dis); drawTorus(); drawCylinder(); drawFloor(10.0, 10.0, 10, 10); glsl.OFF(); glutSwapBuffers(); } void setLight(){ float lightAmbient0[] = {0.5, 0.5, 0.5, 1.0}; //環境光 float lightDiffuse0[] = {1.0, 1.0, 1.0, 1.0}; //拡散光 float lightSpecular0[] = {1.0, 1.0, 1.0, 1.0};//鏡面光 glLightfv(GL_LIGHT0, GL_AMBIENT, lightAmbient0); glLightfv(GL_LIGHT0, GL_DIFFUSE, lightDiffuse0); glLightfv(GL_LIGHT0, GL_SPECULAR, lightSpecular0); glLightfv(GL_LIGHT0, GL_POSITION, lightPos); glEnable(GL_LIGHT0); glEnable(GL_LIGHTING); } void setCamera(){ float pp = PAI / 180.0f; view.pos[2] = view.cnt[2] + view.dist * cos(pp * view.theta) * cos(pp * view.phi);//z view.pos[0] = view.cnt[0] + view.dist * cos(pp * view.theta) * sin(pp * view.phi);//x view.pos[1] = view.cnt[1] + view.dist * sin(pp * view.theta);//y resize(width, height); } void mouse(int button, int state, int x, int y){ float pp = PAI / 180.0f; if(button == GLUT_LEFT_BUTTON state == GLUT_DOWN){ xStart = x; yStart = y; flagMouse = true; }else if(button == GLUT_RIGHT_BUTTON state == GLUT_DOWN){ if(x width/4 x 3*width/4 y height/4 y 3*height/4){ }else if(( x width/4 || x 3*width/4) (y height/4 y 3*height/4)){ if(x width/4 ) view.phi -= 1.0; else view.phi += 1.0; view.cnt[2] = view.pos[2] - view.dist * cos(pp * view.phi) * cos(pp * view.theta); view.cnt[0] = view.pos[0] - view.dist * sin(pp * view.phi) * cos(pp * view.theta); }else if((x width/4 x 3*width/4) (y height/4 || y 3*height/4)){ if( y height/4){ view.theta += 1.0; }else{ view.theta -= 1.0; } view.cnt[2] = view.pos[2] - view.dist * cos(pp * view.theta) * cos(pp * view.phi); view.cnt[0] = view.pos[0] - view.dist * cos(pp * view.theta) * sin(pp * view.phi); view.cnt[1] = view.pos[1] - view.dist * sin(pp * view.theta); }else if(x width/8 y 7*height/8) view.fovY -= 1.0;//zoom in else if(x 7*width/8 y 7*height/8) view.fovY += 1.0;//zoom out }else flagMouse = false; if(state == GLUT_DOWN) setCamera(); } void motion(int x, int y){ if(!flagMouse) return; if(cos(PAI * view.theta /180.0f) = 0.0f){ view.phi -= 0.5f * (float)(x - xStart) ;//tumble }else{ view.phi += 0.5f * (float)(x - xStart) ;//tumble } view.theta += 0.5f * (float)(y - yStart) ;//crane setCamera(); xStart = x; yStart = y; } void Init(void){ glClearColor(0.5f, 0.5f, 0.7f, 1.0f); setCamera(); setLight(); glEnable(GL_DEPTH_TEST); glEnable(GL_NORMALIZE); glEnable(GL_SMOOTH); glEnable(GL_CULL_FACE); setShadowMap(); glsl.InitGLSL( vertex.shader , flagment.shader ); } void idle(void){ glutPostRedisplay(); } void timer(int value) { ang+=0.1f; glutTimerFunc(10 , timer , 0); } void main(int argc, char *argv[]){ glutInitWindowPosition(100, 100); glutInitWindowSize(width, height); glutInit( argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutCreateWindow( ソフトシャドウ ); glutDisplayFunc(display); glutIdleFunc(idle); glutMouseFunc(mouse); glutMotionFunc(motion); glutReshapeFunc(resize); glutTimerFunc(10 , timer , 0); Init(); glutMainLoop(); return; }