Slide 1

Slide 1 text

PHPͰ෺ཧΤϯδϯ ʢPHPysicsʣΛ࡞ͬͯΈͨ ͔͔͋ͭ PHPΧϯϑΝϨϯεԭೄ2024

Slide 2

Slide 2 text

ࣗݾ঺հ • ͔͔͋ͭ @aki_artisan • όοΫΤϯυΤϯδχΞ • ҩྍػؔ޲͚ۀ຿ࢧԉγεςϜΛ࡞͍ͬͯ·͢ • PHPΧϯϑΝϨϯεؔ੢2025࣮ߦҕһ௕΍Γ·͢ʂ

Slide 3

Slide 3 text

͓͜ͱΘΓ • ࠓճ঺հ͢ΔϓϩάϥϜ͸ษڧ༻ʹ࡞ͬͨ΋ͷͰ͢ • ֶज़໨త΍࢓ࣄͰ͸࢖͑·ͤΜ • ൃදऀ͸෺ཧͷઐ໳ՈͰ͸͋Γ·ͤΜ

Slide 4

Slide 4 text

ιʔείʔυ͸ͪ͜Β • ίʔυݟͳ͕Βฉ͖͍ͨํ • ͥͻͥͻελʔ͍ͩ͘͞🤩 https://github.com/akinoriakatsuka/PHPysics/

Slide 5

Slide 5 text

ຊൃදͷ໨ඪ • ෺ཧʹ਌͠ΜͰ΋Β͏ • ۀ຿ͷϓϩάϥϜΛ཭Εָͯ͠ΜͰ΋Β͏ • ࣗ෼Ͱ΋෺ཧΤϯδϯΛ࡞ͬͯΈΑ͏͔ͳͱࢥͬͯ΋Β͏

Slide 6

Slide 6 text

ΞδΣϯμ • ͦ΋ͦ΋෺ཧΤϯδϯͱ͸ • ෺ཧΤϯδϯΛ࡞ΔͨΊͷཧ࿦ • ࣮૷ • σϞ • ͓·͚ʢ࣮૷ͷ޻෉ʣ • ·ͱΊ

Slide 7

Slide 7 text

ͦ΋ͦ΋෺ཧΤϯδϯͱ͸

Slide 8

Slide 8 text

ͦ΋ͦ΋෺ཧΤϯδϯͱ͸ • ෺ཧԋࢉΛ͢Διϑτ΢ΣΞͷ͜ͱ • ήʔϜ΍ֶज़ݚڀͳͲʹ༻͍ΒΕΔ • εύίϯΛ࢖ͬͨඈລͷݚڀ https://www.youtube.com/watch?v=3zhHuNgq1yk

Slide 9

Slide 9 text

෺ཧΤϯδϯΛ࡞Ζ͏ͱࢥ͖͔͚ͬͨͬ • PHPΧϯϑΝϨϯεԭೄͰ࿩͍ͨ͠ωλΛ୳͍ͯͨ͠ • ෺ཧͬͯPhysicsͩΑͳʔ • PHPͰ࡞ͬͯPHPysicsͱ໋໊ͨ͠Βɺ໘ന͍ͷͰ͸ʁ • 3DͷήʔϜΛϓϨΠ͍ͯͯ͠෺ཧΤϯδϯʹڵຯ͕͋ͬͨ →͏͔ͭʹͭͬͯ͘͠·ͬͨ

Slide 10

Slide 10 text

໋໊ʹ͍ͭͯʢখωλʣ • ElePHPant • PHPͷϚείοτ • phΛPHPʹஔ׵͍ͯ͠Δ • Physics → PHPysics

Slide 11

Slide 11 text

෺ཧΤϯδϯΛ࡞ΔͨΊʹ͸ʢཧ࿦ʣ

Slide 12

Slide 12 text

෺ཧΤϯδϯͰ΍Γ͍ͨ͜ͱ • ͋Δ࣌ؒ ͕ܦաͨ͠ޙͷ෺ମͷҐஔΛ༧ଌ͍ͨ͠ • ʮࣗવʹʯ෺ମ͕ಈ͍͍ͯΔΑ͏ʹݟ͑Ε͹Α͍͜ͱʹ͢Δ t

Slide 13

Slide 13 text

ߴߍ෺ཧΛ͓͞Β͍ • ӡಈํఔࣜ ɹ( ·ͨ͸ɺ ʣ • ͸ྗ • ͸࣭ྔ • ͸Ճ଎౓ • Ճ଎౓͸࣌ؒ͋ͨΓʹ଎౓͕Ͳͷ͘Β͍มΘΔ͔ • ʮՃ଎ʯʴʮ౓ʯͱΘ͚Δͱཧղ͠΍͍͢ʁ F = ma a = F m F m a

Slide 14

Slide 14 text

෺ཧ๏ଇ͸࣮ݧ΍؍ଌΛ΋ͱʹఆࣜԽ͞Εͨ๏ଇ • ݹయྗֶͰ͸ɺʮ໦͔ΒϦϯΰ͕མͪΔಈ͖ʯͱʮଠཅܥͷ࿭੕ͷಈ ͖ʯΛಉ࣌ʹಉ͡๏ଇͰઆ໌Ͱ͖Δ • ΑΓଟ͘ͷ؍ଌΛઆ໌Ͱ͖Δཧ࿦͕ΑΓਖ਼͍͠ཧ࿦ͱͯ͠ೝΊΒΕͯ ͍͘ • ిࢠͳͲϛΫϩͳ෺ମͷಈ͖͸ݹయྗֶͰ͸આ໌͖͠Εͳ͍

Slide 15

Slide 15 text

෺ཧΤϯδϯΛ࡞ΔͨΊͷཧ࿦ • ਺ࣜΛղ͘͜ͱͰະདྷͷҐஔΛόγοͱܾΊΔͷ͸ʮղੳతʹղ͘ʯ ͱݴΘΕΔ • ߴߍ෺ཧͷྗֶͷ໰୊͸΄΅͜Ε • 3ମҎ্ͷӡಈͰ͸ղੳతʹղ͚ͳ͍Β͍͠ • ੵ෼ͷΞϓϩʔνͰۙࣅతʹܭࢉ͍ͯ͘͠

Slide 16

Slide 16 text

෺ཧΤϯδϯΛ࡞ΔͨΊͷཧ࿦ • ੵ෼ͱ͸ɺ͋Δ΋ͷͷશମΛܭࢉ͢Δͱ͖ʹɺݶΓͳ͘ࡉ͔͘੾ͬͯ શͯΛ଍͠߹ΘͤΔ͜ͱͰ౴͑ΛٻΊΔ΍Γํ • ྫʣۂઢͰғ·Εͨਤܗͷ໘ੵ • ෺ཧΤϯδϯͰ͸ӡಈΛࡉ͔͘੾͍ͬͯ͘ https://hiraocafe.com/note/kubunkyuseki.html

Slide 17

Slide 17 text

෺ཧΤϯδϯͷ࡞Γํ • ෺ମͷ࣍ͷҐஔΛΘ͔Γ͍ͨ • ࣍ͷҐஔ͕Θ͔ΔͨΊʹ͸଎౓ͱࠓͷҐஔ͕Θ͔Ε͹Α͍ • ଎౓͕Θ͔ΔͨΊʹ͸ࠓͷ଎౓ͱՃ଎౓͕Θ͔Ε͹Α͍ • Ճ଎౓͕Θ͔ΔͨΊʹ͸ྗͱ࣭ྔ͕෼͔Ε͹Α͍ ཻࢠ͝ͱʹɺ࣭ྔɺҐஔɺ଎౓Λ؅ཧ͓͍ͯͯ͠ɺྗ͸౎౓ܭࢉͯ͠ ίϚૹΓʹͨ͠ΒͰ͖ͦ͏ʂ

Slide 18

Slide 18 text

͍͟ɺ࣮૷

Slide 19

Slide 19 text

ͭ͘Δ΋ͷ • ॳظ৚݅΍ఆ਺Λ༩֤͑ͯεςοϓ͝ͱͷཻ֤ࢠͷ࠲ඪΛग़ྗ͢Δ ϓϩάϥϜ ෺ཧΤϯδϯ

Slide 20

Slide 20 text

ͭ͘Δ΋ͷ • άϥϑΟοΫͷඳը͸PythonͷϥΠϒϥϦͰ͓͜ͳ͏(matplotlib) Python

Slide 21

Slide 21 text

Step0 શମ૾ • main.php • ύϥϝʔλͷऔΓࠐΈ • ܥͷॳظԽ • ෺ମ͕ಈ͖ճΔϑΟʔϧυ • ܭࢉ+ग़ྗ

Slide 22

Slide 22 text

Step0 શମ૾ • main.php • ύϥϝʔλͷऔΓࠐΈ • ܥͷॳظԽ • ෺ମ͕ಈ͖ճΔϑΟʔϧυ • ܭࢉ+ग़ྗ

Slide 23

Slide 23 text

Step1 ࠲ඪܥΛ࡞Δ • 3࣍ݩͰ࠲ඪʢҐஔʣΛදͤΕ͹ྑ͍ • ୺ͬ͜ʢڥքʣ͸ޙͰߟ͑Δ͜ͱʹ͢Δ • CoordinateΫϥεͱSystemΫϥε

Slide 24

Slide 24 text

Step2 ཻࢠΛ͓͘ • ͱΓ࣭͋͑ͣ఺ʹ͢ΔʢྖҬ΍ମੵΛ΋ͨͳ͍ʣ • ࠲ඪͱ࣭ྔ͚ͩ͋Ε͹ྑ͍ • ParticleΫϥε

Slide 25

Slide 25 text

Step3 ౳଎௚ઢӡಈͤ͞Δ • ཻࢠ͕ॳ଎Λ࣋ͯΔΑ͏ʹ͢Δ • λΠϜεςοϓ͝ͱʹ଎౓ͷ෼͚ͩ࠲ඪΛͣΒ͢

Slide 26

Slide 26 text

Step4 ྗΛ΋ͱʹՃ଎౓Λܭࢉ͢ΔΑ͏ʹ͢Δ • ྗΛ΋ͱʹՃ଎౓ΛܭࢉͰ͖ΔΑ͏ʹ͢Δ • λΠϜεςοϓ͝ͱʹྗΛܭࢉͯ͠Ճ଎౓Λܭࢉ • Ճ଎౓Λ΋ͱʹ଎౓Λߋ৽ • ଎౓Λ΋ͱʹҐஔΛߋ৽ • ForceΫϥε

Slide 27

Slide 27 text

Step5 ༷ʑͳྗΛϓϩάϥϜ͢Δ • ॏྗ΍όωͷಈ͖ͳͲͦΕͧΕͷ෺ཧ๏ଇʹैͬͯ ྗͷܭࢉࣜΛ࣮૷͢Δ • ͍Ζ͍Ζͳಈ͖Λͤ͞Δ͜ͱ͕Ͱ͖ΔΑ͏ʹͳΔ • calculateForceϝιουʹ৭ʑ௥Ճ͢Δ

Slide 28

Slide 28 text

࣮૷ͷ·ͱΊ • ͱ͍͏ײ͡ͰҰ௨Γ࣮૷ͨ͠΋ͷ͕ͪ͜Β • ৼΓࢠͷγϛϡϨʔγϣϯ • Ҿ͖߹͏2෺ମͷγϛϡϨʔγϣϯ

Slide 29

Slide 29 text

σϞαΠτͷ͝Ҋ಺

Slide 30

Slide 30 text

Έͳ͞Μ΋ɺPHPysicsͰ༡΂·͢ • https://phpysics.net ͰdemoΛެ։͍ͯ͠·͢ • ύϥϝʔλΛ͍ͬͯ͡ɺ͓޷ΈͷӡಈΛͤ͞ΒΕ·͢ • ʢύϥϝʔλͷॻࣜͷϚχϡΞϧͱ͔͸༻ҙͰ͖ͯͳ͍Ͱ͢🙏ʣ • ͥͻͥͻɺ༡ΜͰΈ͍ͯͩ͘͞

Slide 31

Slide 31 text

ࠓޙͷల๬

Slide 32

Slide 32 text

ࠓޙͷల๬ 1. ࣭఺ͷӡಈʹͱͲ·͍ͬͯΔͷͰɺྖҬΛ΋ͬͨਤܗΛѻ͑ΔΑ͏ ʹ͍ͨ͠ • ߶ମٿ΍߶ମ๮ͳͲʢճసΛѻ͏ඞཁ͕͋Γগ͠೉ͦ͠͏ʣ 2. ෺ମͷিಥΛѻ͑ΔΑ͏ʹ͍ͨ͠ • Ҡಈ͢ΔྖҬ͕ඃΔ͔൑ఆͯ͠ɺ଎౓Λௐ੔͢Δʁʢ೉ͦ͠͏ʣ • ʢ͢Γൈ͚όάͬͯ͜ͷลΓͷѻ͍͕೉͍͔͠ΒͳΜͰ͔͢Ͷ🤔ʣ

Slide 33

Slide 33 text

·ͱΊ

Slide 34

Slide 34 text

·ͱΊ • ෺ཧΤϯδϯͰ͸ɺະདྷͷ෺ମͷҐஔΛܭࢉ͢Δ • ෺ཧΤϯδϯ͸ֶज़ݚڀ΍ήʔϜͳͲʹ࢖ΘΕ͍ͯΔ • ྗֶͷܭࢉͰ͸ɺখִ͍࣌ؒؒ͞ʹ۠੾ͬͯগͣͭ͠ίϚૹΓͰ ҐஔΛมԽͤ͞Δ

Slide 35

Slide 35 text

͓·͚ɿ࣮૷ͷ޻෉

Slide 36

Slide 36 text

࣮૷ͷ޻෉ • ͳ͔ͥܭࢉ͕ͣΕ͍ͯ͘ͱ͍͏ݱ৅͕ىͬͨ͜ • (ίϛοτϋογϡɿd760f2cf4da048b) • ͳͥͩͱࢥ͍·͔͢ʁ

Slide 37

Slide 37 text

࣮૷ͷ޻෉ • ଞͷཻࢠͷྗΛܭࢉ͢Δલʹɺܭࢉཻͨ͠ࢠͷҐஔΛಈ͔ͯ͠͠·ͬ ͍ͯͨʂ • νϦͭ΋Ͱޡ͕ࠩ૿͍͑ͯͬͯ͠·͍ͬͯͨ • શͯͷཻࢠͷྗΛܭࢉ͔ͯ͠ΒҰ੪ʹ଎౓ͱҐஔΛߋ৽͢ΔΑ͏ʹ

Slide 38

Slide 38 text

PHPͰ΋෺ཧΤϯδϯ͸࡞ΕΔ ͭͬͯ͋ͦ͘ΜͰΈΑ͏ʂ

Slide 39

Slide 39 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ