├── README.md
└── photos
├── 2018-4-7
├── .DS_Store
├── WX20180407-163500.png
├── WX20180407-163626.png
├── WX20180407-163725.png
├── WX20180407-163802.png
├── WX20180407-163916.png
├── WX20180407-163953.png
├── WX20180407-172215.png
├── WX20180407-172237.png
├── WX20180407-172403.png
├── WX20180407-172641.png
├── WX20180407-172746.png
├── WX20180407-172902.png
├── WX20180407-173115.png
├── WX20180407-173147.png
├── WX20180407-181933.png
└── WX20180407-182647.png
├── 2019-11-19
├── 1.jpg
├── 2.jpg
├── 3.jpg
├── 4.jpg
├── 5.jpg
├── 6.jpg
├── 7.jpg
└── 8.jpg
├── 2019-5-19
├── bbox.png
├── bbox2.png
├── cd.png
├── poly1.png
├── poly2.png
├── s&p.png
├── sat1.jpg
├── sat2.jpg
├── sat3.jpg
└── 穿透.png
├── 2019-5-29
├── 2018121410462466.png
├── 20181214112339595.png
├── 20181214112636330.png
├── 2018121414201566.png
├── 20181214143232125.png
└── 微信截图_20190530002222.png
├── 2019-6-1
├── 20161104233245523.png
├── GIF.gif
├── 微信截图_20190601161718.png
├── 微信截图_20190601162406.png
└── 微信截图_20190601162429.png
├── 2019-6-17
├── 20150623225525008.png
├── 20150623225921049.png
├── 20150623230149494.png
├── 20150623230500257.png
└── GIF.gif
├── 2019-6-24
├── GIF.gif
├── add.gif
├── del.gif
├── 图片1.png
├── 微信截图_20190624181946.png
├── 微信截图_20190624190322.png
├── 微信截图_20190624220954.png
├── 微信截图_20190624221122.png
├── 微信截图_20190624222144.png
├── 微信截图_20190624224228.png
└── 微信截图_20190624225928.png
├── 2019-6-9
├── 20161104233304006.png
├── 微信截图_20190609181209.png
└── 微信截图_20190609181253.png
├── 2019-7-11
├── 4af4f21982da0376074b444730c30717.png
├── 6d3955125f674f84a6f723282888adbd.png
├── 微信截图_20190711144004.png
├── 微信截图_20190711150057.png
├── 微信截图_20190711162919.png
├── 微信截图_20190711163215.png
└── 微信截图_20190711163349.png
├── 2019-7-18
├── 20190218191923306.png
├── 201902181919233061.png
├── 201902182023072018.png
├── 20190218202307208.png
├── GIF.gif
├── 微信截图_20190717154200.png
├── 微信截图_20190717154343.png
├── 微信截图_20190717193901.png
└── 微信截图_20190718173904.png
├── 2019-7-3
├── GIF.gif
├── 微信截图_20190703223746.png
├── 微信截图_20190703230935.png
├── 微信截图_20190704144741.png
├── 微信截图_20190704232000.png
├── 微信截图_20190704232343.png
└── 微信截图_20190704233339.png
├── 2019-7-9
├── 0fb723f86dda24d03356b5aa65ab25e4.png
├── 4af4f21982da0376074b444730c30717.png
├── 680b97a4e48ce206f363cefcfbc9d778.png
├── 微信截图_20190709194331.png
└── 微信截图_20190709224313.png
├── 2019-8-16
├── 4444.png
├── 微信截图_20190816110317.png
├── 微信截图_20190816111033.png
├── 微信截图_20190816170122.png
├── 微信截图_20190816170153.png
├── 微信截图_20190816170222.png
├── 微信截图_20190816172249.png
├── 微信截图_20190816172537.png
├── 微信截图_20190816172601.png
├── 微信截图_20190816172646.png
├── 微信截图_20190816172703.png
├── 微信截图_20190816173615.png
├── 微信截图_20190816173642.png
├── 微信截图_20190816174248.png
├── 微信截图_20190816174439.png
├── 微信截图_20190816181020.png
├── 微信截图_20190816181705.png
├── 微信截图_20190817175858.png
└── 微信截图_20190817175921.png
├── 2019-8-7
├── 微信截图_20190807111411.png
├── 微信截图_20190807111450.png
├── 微信截图_20190807111508.png
├── 微信截图_20190807111521.png
├── 微信截图_20190807111531.png
├── 微信截图_20190807111546.png
├── 微信截图_20190807114953.png
├── 微信截图_20190807115820.png
└── 微信截图_20190807120146.png
├── 2020-1-9
└── 1.png
├── 2020-2-14
├── v2-5a5efc0e3ffc0b9e8102e6ef4a78c382_b.png
├── v2-c26834a14286aeb188fd1bf421a8f826_b.png
├── 微信截图_20200214225829.png
├── 微信截图_20200214225941.png
├── 微信截图_20200214232934.png
├── 微信截图_20200214233459.png
├── 微信截图_20200214235242.png
├── 微信截图_20200214235428.png
├── 微信截图_20200214235729.png
├── 微信截图_20200215010829.png
├── 微信截图_20200215174128.png
├── 微信截图_20200215181843.png
├── 微信截图_20200215182108.png
└── 微信截图_20200215182858.png
├── 2020-4-13
├── 微信截图_20200413155836.png
├── 微信截图_20200413160533.png
├── 微信截图_20200413161838.png
├── 微信截图_20200413162921.png
├── 微信截图_20200413163202.png
├── 微信截图_20200413164732.png
├── 微信截图_20200413164941.png
├── 微信截图_20200413170916.png
├── 微信截图_20200413171824.png
├── 微信截图_20200413171835.png
├── 物理引擎.png
└── 现实.png
├── 2020-4-15
├── 041615462529_0幻灯片18.png
├── 微信截图_20200415232037.png
├── 微信截图_20200415233009.png
├── 微信截图_20200415234557.png
├── 微信截图_20200416000902.png
├── 微信截图_20200416155557.png
└── 微信截图_20200416160915.png
├── 2020-4-16
├── 微信截图_20190522170309.png
├── 微信截图_20190522170439.png
├── 微信截图_20200415234557.png
├── 微信截图_20200416165905.png
├── 微信截图_20200416170628.png
├── 微信截图_20200416171025.png
├── 微信截图_20200416171057.png
└── 微信截图_20200416171127.png
├── 2020-4-17
├── 幻灯片36.PNG
├── 幻灯片37.PNG
├── 幻灯片38.PNG
├── 幻灯片39.PNG
├── 幻灯片40.PNG
├── 幻灯片41.PNG
├── 幻灯片42.PNG
├── 幻灯片43.PNG
├── 幻灯片44.PNG
├── 幻灯片45.PNG
├── 幻灯片46.PNG
├── 微信截图_20200417172124.png
└── 演示文稿1.png
├── 2020-6-25
├── 微信截图_20200625211929.png
├── 微信截图_20200625211953.png
├── 微信截图_20200625212010.png
├── 微信截图_20200625213907.png
├── 微信截图_20200625233707.png
├── 微信截图_20200625233725.png
├── 微信截图_20200626230304.png
└── 欧拉方法详解.md
├── 2020-8-21
├── 1.png
├── 2.png
├── 3.png
├── 4.png
├── 5.png
├── 6.png
├── 微信截图_20200824152518.png
└── 微信截图_20200824205308.png
├── QQ20180215-232321-HD.gif
├── QQ20180216-150758-HD.gif
├── WX20170921-174437.png
├── WX20170921-181442.png
├── WX20170921-181753.png
├── WX20170921-183411.png
├── WX20170921-185537.png
├── WX20170921-190451.png
├── WX20170922-005153.png
├── WX20170922-005212.png
├── WX20170922-005222.png
├── WX20170922-191359.png
├── WX20170922-201509.png
├── WX20170922-201718.png
├── WX20170922-203921.png
├── WX20170927-164552.png
├── WX20171004-163706.png
├── WX20171004-163720.png
├── WX20171004-163737.png
├── WX20171007-162105.png
├── WX20171007-162201.png
├── WX20171027-145452.png
├── WX20171027-150804.png
├── WX20171118-174023.png
├── WX20171118-174054.png
├── WX20171118-174146.png
├── WX20171118-180403.png
├── WX20171217-144424.png
├── WX20171217-164740.png
├── WX20171217-172907.png
├── WX20180123-171737.png
├── WX20180123-172138.png
├── WX20180126-204943.png
├── WX20180126-221306.png
├── WX20180126-222821.png
├── WX20180216-153600.png
├── WX20180301-155602.png
├── WX20180301-170653.png
├── WX20180301-181418.png
├── WX20180301-184956.png
├── WX20180301-185009.png
├── WX20180301-185025.png
├── WX20180301-185728.png
├── WX20180407-171606.png
├── WX20180407-171726.png
├── WX20180407-171751.png
├── v2-cd7ea6b5b6a25d949014f5215cc31315_hd.jpg
├── vdom-diff.png
├── 微信截图_20171118191326.png
├── 微信截图_20171223132238.png
└── 微信截图_20171223135321.png
/README.md:
--------------------------------------------------------------------------------
1 | # Phenom🐤写字的地方📝📝
2 |
3 | ### 2022-10
4 | **[为什么WebGL比Canvas 2d更快?](https://www.yuque.com/phenom/apaq0q/wro6qg)**
5 |
6 |
7 |
8 | ### 2022-09
9 | **[实现一个高性能JS向量/矩阵库](https://www.yuque.com/phenom/apaq0q/yipteo)**
10 |
11 | **[浏览器进程梳理](https://www.yuque.com/phenom/apaq0q/klhliu)**
12 |
13 |
14 |
15 | ### 2022-08
16 | **[暴力防隐藏水印方案](https://www.yuque.com/phenom/apaq0q/vpy9mo)**
17 |
18 | **[实现一个高性能的Canvas图形库](https://www.yuque.com/phenom/apaq0q/adivu9)**
19 |
20 | **[当forwardRef遇到泛型组件](https://www.yuque.com/phenom/apaq0q/oixowk)**
21 |
22 |
23 |
24 | ### 2020-08
25 | **[利用包围盒的交集筛选分离轴](https://www.yuque.com/phenom/apaq0q/ww2k5d)**
26 |
27 |
28 |
29 | ### 2020-06
30 | **[数组积分:欧拉方法详解](https://www.yuque.com/phenom/apaq0q/ffgbwo)**
31 |
32 |
33 |
34 | ### 2020-04
35 | **[StructV教程(二):实现哈希无向图可视化](https://github.com/phenomLi/myBlog/issues/40)**
36 |
37 | **[碰撞点求解(一):最近内部顶点法](https://github.com/phenomLi/myBlog/issues/41)**
38 |
39 | **[碰撞点求解(二):V-clip 算法](https://github.com/phenomLi/myBlog/issues/42)**
40 |
41 |
42 |
43 | ### 2020-03
44 | **[StructV教程(一):实现二叉树可视化](https://github.com/phenomLi/myBlog/issues/39)**
45 |
46 |
47 |
48 | ### 2020-02
49 | **[Typescript踩坑两则](https://github.com/phenomLi/myBlog/issues/38)**
50 |
51 |
52 |
53 | ### 2020-01
54 | **[一些思考:项目的实现到重构](https://github.com/phenomLi/myBlog/issues/37)**
55 |
56 |
57 |
58 | ### 2019-11
59 | **[二叉树线性差异识别算法](https://github.com/phenomLi/myBlog/issues/36)**
60 |
61 |
62 |
63 | ### 2019-08
64 | **[碰撞求解(一):使用向量](https://github.com/phenomLi/myBlog/issues/34)**
65 |
66 | **[碰撞求解(二):使用冲量](https://github.com/phenomLi/myBlog/issues/35)**
67 |
68 |
69 |
70 | ### 2019-07
71 | **[多边形裁剪:Sutherland Hodgman算法](https://github.com/phenomLi/myBlog/issues/30)**
72 |
73 | **[更精确的模拟:verlet积分详解](https://github.com/phenomLi/myBlog/issues/31)**
74 |
75 | **[Timestepping](https://github.com/phenomLi/myBlog/issues/32)**
76 |
77 | **[利用多边形切割进行分离轴算法优化](https://github.com/phenomLi/myBlog/issues/33)**
78 |
79 |
80 |
81 | ### 2019-06
82 | **[N体受力问题(一):四叉树](https://github.com/phenomLi/myBlog/issues/25)**
83 |
84 | **[凹多边形判别与分割](https://github.com/phenomLi/myBlog/issues/26)**
85 |
86 | **[N体受力问题(二):计算物体作用力](https://github.com/phenomLi/myBlog/issues/27)**
87 |
88 | **[GJK碰撞检测算法的另一种实现](https://github.com/phenomLi/myBlog/issues/28)**
89 |
90 | **[一种紧凑树形布局算法的实现](https://github.com/phenomLi/myBlog/issues/29)**
91 |
92 |
93 |
94 | ### 2019-05
95 |
96 | **[AABB - 轴对齐包围盒](https://github.com/phenomLi/myBlog/issues/21)**
97 |
98 | **[粗检测阶段(一):Sweep and Prune 算法](https://github.com/phenomLi/myBlog/issues/22)**
99 |
100 | **[SAT 分离轴算法](https://github.com/phenomLi/myBlog/issues/23)**
101 |
102 | **[React列表diff原理](https://github.com/phenomLi/myBlog/issues/24)**
103 |
104 |
105 |
106 | ### 2018-04
107 |
108 | **[SQLite调试教程](https://github.com/phenomLi/myBlog/issues/18)**
109 |
110 | **[记一个小技巧:一个Activity调用另一个Activity中的非静态方法](https://github.com/phenomLi/myBlog/issues/19)**
111 |
112 |
113 |
114 | ### 2018-02
115 |
116 | **[Math.round()的妙用](https://github.com/phenomLi/myBlog/issues/16)**
117 |
118 | **[Sticky Footer !](https://github.com/phenomLi/myBlog/issues/17)**
119 |
120 |
121 |
122 | ### 2018-01
123 |
124 | **[XMLHttpRequest的五个阶段](https://github.com/phenomLi/myBlog/issues/14)**
125 |
126 | **[JS的继承的总结](https://github.com/phenomLi/myBlog/issues/15)**
127 |
128 |
129 |
130 | ### 2017-12
131 |
132 | **[JS中的深拷贝](https://github.com/phenomLi/myBlog/issues/12)**
133 |
134 | **[理解虚拟DOM](https://github.com/phenomLi/myBlog/issues/13)**
135 |
136 |
137 |
138 | ### 2017-11
139 |
140 | **[随便聊聊事件委托](https://github.com/phenomLi/myBlog/issues/11)**
141 |
142 |
143 |
144 | ### 2017-10
145 |
146 | **[Vue数据绑定揭秘:Object.defineProperty](https://github.com/phenomLi/myBlog/issues/8)**
147 |
148 | **[实现一个乞丐版的Promise](https://github.com/phenomLi/myBlog/issues/9)**
149 |
150 | **[Js循环事件绑定的坑与作用域](https://github.com/phenomLi/myBlog/issues/10)**
151 |
152 |
153 |
154 | ### 2017-09
155 |
156 | **[ES6箭头函数的坑](https://github.com/phenomLi/myBlog/issues/2)**
157 |
158 | **[说说js中的异步](https://github.com/phenomLi/myBlog/issues/3)**
159 |
160 | **[node自定义模块:一个壁纸下载小工具](https://github.com/phenomLi/myBlog/issues/4)**
161 |
162 | **[微信h5手机适配探索](https://github.com/phenomLi/myBlog/issues/5)**
163 |
164 | **[React开发环境搭建教程](https://github.com/phenomLi/myBlog/issues/6)**
165 |
166 | **[利用css伪类作屏幕断点判断](https://github.com/phenomLi/myBlog/issues/7)**
167 |
168 | **[原来github还能这样玩](https://github.com/phenomLi/myBlog/issues/1)**
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
--------------------------------------------------------------------------------
/photos/2018-4-7/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/.DS_Store
--------------------------------------------------------------------------------
/photos/2018-4-7/WX20180407-163500.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/WX20180407-163500.png
--------------------------------------------------------------------------------
/photos/2018-4-7/WX20180407-163626.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/WX20180407-163626.png
--------------------------------------------------------------------------------
/photos/2018-4-7/WX20180407-163725.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/WX20180407-163725.png
--------------------------------------------------------------------------------
/photos/2018-4-7/WX20180407-163802.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/WX20180407-163802.png
--------------------------------------------------------------------------------
/photos/2018-4-7/WX20180407-163916.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/WX20180407-163916.png
--------------------------------------------------------------------------------
/photos/2018-4-7/WX20180407-163953.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/WX20180407-163953.png
--------------------------------------------------------------------------------
/photos/2018-4-7/WX20180407-172215.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/WX20180407-172215.png
--------------------------------------------------------------------------------
/photos/2018-4-7/WX20180407-172237.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/WX20180407-172237.png
--------------------------------------------------------------------------------
/photos/2018-4-7/WX20180407-172403.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/WX20180407-172403.png
--------------------------------------------------------------------------------
/photos/2018-4-7/WX20180407-172641.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/WX20180407-172641.png
--------------------------------------------------------------------------------
/photos/2018-4-7/WX20180407-172746.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/WX20180407-172746.png
--------------------------------------------------------------------------------
/photos/2018-4-7/WX20180407-172902.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/WX20180407-172902.png
--------------------------------------------------------------------------------
/photos/2018-4-7/WX20180407-173115.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/WX20180407-173115.png
--------------------------------------------------------------------------------
/photos/2018-4-7/WX20180407-173147.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/WX20180407-173147.png
--------------------------------------------------------------------------------
/photos/2018-4-7/WX20180407-181933.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/WX20180407-181933.png
--------------------------------------------------------------------------------
/photos/2018-4-7/WX20180407-182647.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2018-4-7/WX20180407-182647.png
--------------------------------------------------------------------------------
/photos/2019-11-19/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-11-19/1.jpg
--------------------------------------------------------------------------------
/photos/2019-11-19/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-11-19/2.jpg
--------------------------------------------------------------------------------
/photos/2019-11-19/3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-11-19/3.jpg
--------------------------------------------------------------------------------
/photos/2019-11-19/4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-11-19/4.jpg
--------------------------------------------------------------------------------
/photos/2019-11-19/5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-11-19/5.jpg
--------------------------------------------------------------------------------
/photos/2019-11-19/6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-11-19/6.jpg
--------------------------------------------------------------------------------
/photos/2019-11-19/7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-11-19/7.jpg
--------------------------------------------------------------------------------
/photos/2019-11-19/8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-11-19/8.jpg
--------------------------------------------------------------------------------
/photos/2019-5-19/bbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-5-19/bbox.png
--------------------------------------------------------------------------------
/photos/2019-5-19/bbox2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-5-19/bbox2.png
--------------------------------------------------------------------------------
/photos/2019-5-19/cd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-5-19/cd.png
--------------------------------------------------------------------------------
/photos/2019-5-19/poly1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-5-19/poly1.png
--------------------------------------------------------------------------------
/photos/2019-5-19/poly2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-5-19/poly2.png
--------------------------------------------------------------------------------
/photos/2019-5-19/s&p.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-5-19/s&p.png
--------------------------------------------------------------------------------
/photos/2019-5-19/sat1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-5-19/sat1.jpg
--------------------------------------------------------------------------------
/photos/2019-5-19/sat2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-5-19/sat2.jpg
--------------------------------------------------------------------------------
/photos/2019-5-19/sat3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-5-19/sat3.jpg
--------------------------------------------------------------------------------
/photos/2019-5-19/穿透.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-5-19/穿透.png
--------------------------------------------------------------------------------
/photos/2019-5-29/2018121410462466.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-5-29/2018121410462466.png
--------------------------------------------------------------------------------
/photos/2019-5-29/20181214112339595.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-5-29/20181214112339595.png
--------------------------------------------------------------------------------
/photos/2019-5-29/20181214112636330.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-5-29/20181214112636330.png
--------------------------------------------------------------------------------
/photos/2019-5-29/2018121414201566.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-5-29/2018121414201566.png
--------------------------------------------------------------------------------
/photos/2019-5-29/20181214143232125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-5-29/20181214143232125.png
--------------------------------------------------------------------------------
/photos/2019-5-29/微信截图_20190530002222.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-5-29/微信截图_20190530002222.png
--------------------------------------------------------------------------------
/photos/2019-6-1/20161104233245523.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-1/20161104233245523.png
--------------------------------------------------------------------------------
/photos/2019-6-1/GIF.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-1/GIF.gif
--------------------------------------------------------------------------------
/photos/2019-6-1/微信截图_20190601161718.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-1/微信截图_20190601161718.png
--------------------------------------------------------------------------------
/photos/2019-6-1/微信截图_20190601162406.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-1/微信截图_20190601162406.png
--------------------------------------------------------------------------------
/photos/2019-6-1/微信截图_20190601162429.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-1/微信截图_20190601162429.png
--------------------------------------------------------------------------------
/photos/2019-6-17/20150623225525008.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-17/20150623225525008.png
--------------------------------------------------------------------------------
/photos/2019-6-17/20150623225921049.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-17/20150623225921049.png
--------------------------------------------------------------------------------
/photos/2019-6-17/20150623230149494.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-17/20150623230149494.png
--------------------------------------------------------------------------------
/photos/2019-6-17/20150623230500257.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-17/20150623230500257.png
--------------------------------------------------------------------------------
/photos/2019-6-17/GIF.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-17/GIF.gif
--------------------------------------------------------------------------------
/photos/2019-6-24/GIF.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-24/GIF.gif
--------------------------------------------------------------------------------
/photos/2019-6-24/add.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-24/add.gif
--------------------------------------------------------------------------------
/photos/2019-6-24/del.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-24/del.gif
--------------------------------------------------------------------------------
/photos/2019-6-24/图片1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-24/图片1.png
--------------------------------------------------------------------------------
/photos/2019-6-24/微信截图_20190624181946.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-24/微信截图_20190624181946.png
--------------------------------------------------------------------------------
/photos/2019-6-24/微信截图_20190624190322.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-24/微信截图_20190624190322.png
--------------------------------------------------------------------------------
/photos/2019-6-24/微信截图_20190624220954.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-24/微信截图_20190624220954.png
--------------------------------------------------------------------------------
/photos/2019-6-24/微信截图_20190624221122.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-24/微信截图_20190624221122.png
--------------------------------------------------------------------------------
/photos/2019-6-24/微信截图_20190624222144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-24/微信截图_20190624222144.png
--------------------------------------------------------------------------------
/photos/2019-6-24/微信截图_20190624224228.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-24/微信截图_20190624224228.png
--------------------------------------------------------------------------------
/photos/2019-6-24/微信截图_20190624225928.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-24/微信截图_20190624225928.png
--------------------------------------------------------------------------------
/photos/2019-6-9/20161104233304006.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-9/20161104233304006.png
--------------------------------------------------------------------------------
/photos/2019-6-9/微信截图_20190609181209.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-9/微信截图_20190609181209.png
--------------------------------------------------------------------------------
/photos/2019-6-9/微信截图_20190609181253.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-6-9/微信截图_20190609181253.png
--------------------------------------------------------------------------------
/photos/2019-7-11/4af4f21982da0376074b444730c30717.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-11/4af4f21982da0376074b444730c30717.png
--------------------------------------------------------------------------------
/photos/2019-7-11/6d3955125f674f84a6f723282888adbd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-11/6d3955125f674f84a6f723282888adbd.png
--------------------------------------------------------------------------------
/photos/2019-7-11/微信截图_20190711144004.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-11/微信截图_20190711144004.png
--------------------------------------------------------------------------------
/photos/2019-7-11/微信截图_20190711150057.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-11/微信截图_20190711150057.png
--------------------------------------------------------------------------------
/photos/2019-7-11/微信截图_20190711162919.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-11/微信截图_20190711162919.png
--------------------------------------------------------------------------------
/photos/2019-7-11/微信截图_20190711163215.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-11/微信截图_20190711163215.png
--------------------------------------------------------------------------------
/photos/2019-7-11/微信截图_20190711163349.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-11/微信截图_20190711163349.png
--------------------------------------------------------------------------------
/photos/2019-7-18/20190218191923306.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-18/20190218191923306.png
--------------------------------------------------------------------------------
/photos/2019-7-18/201902181919233061.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-18/201902181919233061.png
--------------------------------------------------------------------------------
/photos/2019-7-18/201902182023072018.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-18/201902182023072018.png
--------------------------------------------------------------------------------
/photos/2019-7-18/20190218202307208.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-18/20190218202307208.png
--------------------------------------------------------------------------------
/photos/2019-7-18/GIF.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-18/GIF.gif
--------------------------------------------------------------------------------
/photos/2019-7-18/微信截图_20190717154200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-18/微信截图_20190717154200.png
--------------------------------------------------------------------------------
/photos/2019-7-18/微信截图_20190717154343.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-18/微信截图_20190717154343.png
--------------------------------------------------------------------------------
/photos/2019-7-18/微信截图_20190717193901.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-18/微信截图_20190717193901.png
--------------------------------------------------------------------------------
/photos/2019-7-18/微信截图_20190718173904.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-18/微信截图_20190718173904.png
--------------------------------------------------------------------------------
/photos/2019-7-3/GIF.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-3/GIF.gif
--------------------------------------------------------------------------------
/photos/2019-7-3/微信截图_20190703223746.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-3/微信截图_20190703223746.png
--------------------------------------------------------------------------------
/photos/2019-7-3/微信截图_20190703230935.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-3/微信截图_20190703230935.png
--------------------------------------------------------------------------------
/photos/2019-7-3/微信截图_20190704144741.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-3/微信截图_20190704144741.png
--------------------------------------------------------------------------------
/photos/2019-7-3/微信截图_20190704232000.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-3/微信截图_20190704232000.png
--------------------------------------------------------------------------------
/photos/2019-7-3/微信截图_20190704232343.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-3/微信截图_20190704232343.png
--------------------------------------------------------------------------------
/photos/2019-7-3/微信截图_20190704233339.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-3/微信截图_20190704233339.png
--------------------------------------------------------------------------------
/photos/2019-7-9/0fb723f86dda24d03356b5aa65ab25e4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-9/0fb723f86dda24d03356b5aa65ab25e4.png
--------------------------------------------------------------------------------
/photos/2019-7-9/4af4f21982da0376074b444730c30717.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-9/4af4f21982da0376074b444730c30717.png
--------------------------------------------------------------------------------
/photos/2019-7-9/680b97a4e48ce206f363cefcfbc9d778.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-9/680b97a4e48ce206f363cefcfbc9d778.png
--------------------------------------------------------------------------------
/photos/2019-7-9/微信截图_20190709194331.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-9/微信截图_20190709194331.png
--------------------------------------------------------------------------------
/photos/2019-7-9/微信截图_20190709224313.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-7-9/微信截图_20190709224313.png
--------------------------------------------------------------------------------
/photos/2019-8-16/4444.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/4444.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190816110317.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190816110317.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190816111033.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190816111033.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190816170122.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190816170122.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190816170153.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190816170153.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190816170222.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190816170222.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190816172249.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190816172249.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190816172537.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190816172537.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190816172601.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190816172601.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190816172646.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190816172646.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190816172703.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190816172703.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190816173615.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190816173615.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190816173642.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190816173642.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190816174248.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190816174248.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190816174439.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190816174439.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190816181020.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190816181020.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190816181705.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190816181705.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190817175858.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190817175858.png
--------------------------------------------------------------------------------
/photos/2019-8-16/微信截图_20190817175921.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-16/微信截图_20190817175921.png
--------------------------------------------------------------------------------
/photos/2019-8-7/微信截图_20190807111411.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-7/微信截图_20190807111411.png
--------------------------------------------------------------------------------
/photos/2019-8-7/微信截图_20190807111450.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-7/微信截图_20190807111450.png
--------------------------------------------------------------------------------
/photos/2019-8-7/微信截图_20190807111508.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-7/微信截图_20190807111508.png
--------------------------------------------------------------------------------
/photos/2019-8-7/微信截图_20190807111521.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-7/微信截图_20190807111521.png
--------------------------------------------------------------------------------
/photos/2019-8-7/微信截图_20190807111531.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-7/微信截图_20190807111531.png
--------------------------------------------------------------------------------
/photos/2019-8-7/微信截图_20190807111546.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-7/微信截图_20190807111546.png
--------------------------------------------------------------------------------
/photos/2019-8-7/微信截图_20190807114953.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-7/微信截图_20190807114953.png
--------------------------------------------------------------------------------
/photos/2019-8-7/微信截图_20190807115820.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-7/微信截图_20190807115820.png
--------------------------------------------------------------------------------
/photos/2019-8-7/微信截图_20190807120146.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2019-8-7/微信截图_20190807120146.png
--------------------------------------------------------------------------------
/photos/2020-1-9/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-1-9/1.png
--------------------------------------------------------------------------------
/photos/2020-2-14/v2-5a5efc0e3ffc0b9e8102e6ef4a78c382_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-2-14/v2-5a5efc0e3ffc0b9e8102e6ef4a78c382_b.png
--------------------------------------------------------------------------------
/photos/2020-2-14/v2-c26834a14286aeb188fd1bf421a8f826_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-2-14/v2-c26834a14286aeb188fd1bf421a8f826_b.png
--------------------------------------------------------------------------------
/photos/2020-2-14/微信截图_20200214225829.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-2-14/微信截图_20200214225829.png
--------------------------------------------------------------------------------
/photos/2020-2-14/微信截图_20200214225941.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-2-14/微信截图_20200214225941.png
--------------------------------------------------------------------------------
/photos/2020-2-14/微信截图_20200214232934.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-2-14/微信截图_20200214232934.png
--------------------------------------------------------------------------------
/photos/2020-2-14/微信截图_20200214233459.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-2-14/微信截图_20200214233459.png
--------------------------------------------------------------------------------
/photos/2020-2-14/微信截图_20200214235242.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-2-14/微信截图_20200214235242.png
--------------------------------------------------------------------------------
/photos/2020-2-14/微信截图_20200214235428.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-2-14/微信截图_20200214235428.png
--------------------------------------------------------------------------------
/photos/2020-2-14/微信截图_20200214235729.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-2-14/微信截图_20200214235729.png
--------------------------------------------------------------------------------
/photos/2020-2-14/微信截图_20200215010829.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-2-14/微信截图_20200215010829.png
--------------------------------------------------------------------------------
/photos/2020-2-14/微信截图_20200215174128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-2-14/微信截图_20200215174128.png
--------------------------------------------------------------------------------
/photos/2020-2-14/微信截图_20200215181843.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-2-14/微信截图_20200215181843.png
--------------------------------------------------------------------------------
/photos/2020-2-14/微信截图_20200215182108.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-2-14/微信截图_20200215182108.png
--------------------------------------------------------------------------------
/photos/2020-2-14/微信截图_20200215182858.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-2-14/微信截图_20200215182858.png
--------------------------------------------------------------------------------
/photos/2020-4-13/微信截图_20200413155836.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-13/微信截图_20200413155836.png
--------------------------------------------------------------------------------
/photos/2020-4-13/微信截图_20200413160533.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-13/微信截图_20200413160533.png
--------------------------------------------------------------------------------
/photos/2020-4-13/微信截图_20200413161838.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-13/微信截图_20200413161838.png
--------------------------------------------------------------------------------
/photos/2020-4-13/微信截图_20200413162921.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-13/微信截图_20200413162921.png
--------------------------------------------------------------------------------
/photos/2020-4-13/微信截图_20200413163202.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-13/微信截图_20200413163202.png
--------------------------------------------------------------------------------
/photos/2020-4-13/微信截图_20200413164732.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-13/微信截图_20200413164732.png
--------------------------------------------------------------------------------
/photos/2020-4-13/微信截图_20200413164941.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-13/微信截图_20200413164941.png
--------------------------------------------------------------------------------
/photos/2020-4-13/微信截图_20200413170916.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-13/微信截图_20200413170916.png
--------------------------------------------------------------------------------
/photos/2020-4-13/微信截图_20200413171824.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-13/微信截图_20200413171824.png
--------------------------------------------------------------------------------
/photos/2020-4-13/微信截图_20200413171835.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-13/微信截图_20200413171835.png
--------------------------------------------------------------------------------
/photos/2020-4-13/物理引擎.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-13/物理引擎.png
--------------------------------------------------------------------------------
/photos/2020-4-13/现实.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-13/现实.png
--------------------------------------------------------------------------------
/photos/2020-4-15/041615462529_0幻灯片18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-15/041615462529_0幻灯片18.png
--------------------------------------------------------------------------------
/photos/2020-4-15/微信截图_20200415232037.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-15/微信截图_20200415232037.png
--------------------------------------------------------------------------------
/photos/2020-4-15/微信截图_20200415233009.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-15/微信截图_20200415233009.png
--------------------------------------------------------------------------------
/photos/2020-4-15/微信截图_20200415234557.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-15/微信截图_20200415234557.png
--------------------------------------------------------------------------------
/photos/2020-4-15/微信截图_20200416000902.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-15/微信截图_20200416000902.png
--------------------------------------------------------------------------------
/photos/2020-4-15/微信截图_20200416155557.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-15/微信截图_20200416155557.png
--------------------------------------------------------------------------------
/photos/2020-4-15/微信截图_20200416160915.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-15/微信截图_20200416160915.png
--------------------------------------------------------------------------------
/photos/2020-4-16/微信截图_20190522170309.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-16/微信截图_20190522170309.png
--------------------------------------------------------------------------------
/photos/2020-4-16/微信截图_20190522170439.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-16/微信截图_20190522170439.png
--------------------------------------------------------------------------------
/photos/2020-4-16/微信截图_20200415234557.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-16/微信截图_20200415234557.png
--------------------------------------------------------------------------------
/photos/2020-4-16/微信截图_20200416165905.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-16/微信截图_20200416165905.png
--------------------------------------------------------------------------------
/photos/2020-4-16/微信截图_20200416170628.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-16/微信截图_20200416170628.png
--------------------------------------------------------------------------------
/photos/2020-4-16/微信截图_20200416171025.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-16/微信截图_20200416171025.png
--------------------------------------------------------------------------------
/photos/2020-4-16/微信截图_20200416171057.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-16/微信截图_20200416171057.png
--------------------------------------------------------------------------------
/photos/2020-4-16/微信截图_20200416171127.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-16/微信截图_20200416171127.png
--------------------------------------------------------------------------------
/photos/2020-4-17/幻灯片36.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-17/幻灯片36.PNG
--------------------------------------------------------------------------------
/photos/2020-4-17/幻灯片37.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-17/幻灯片37.PNG
--------------------------------------------------------------------------------
/photos/2020-4-17/幻灯片38.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-17/幻灯片38.PNG
--------------------------------------------------------------------------------
/photos/2020-4-17/幻灯片39.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-17/幻灯片39.PNG
--------------------------------------------------------------------------------
/photos/2020-4-17/幻灯片40.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-17/幻灯片40.PNG
--------------------------------------------------------------------------------
/photos/2020-4-17/幻灯片41.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-17/幻灯片41.PNG
--------------------------------------------------------------------------------
/photos/2020-4-17/幻灯片42.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-17/幻灯片42.PNG
--------------------------------------------------------------------------------
/photos/2020-4-17/幻灯片43.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-17/幻灯片43.PNG
--------------------------------------------------------------------------------
/photos/2020-4-17/幻灯片44.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-17/幻灯片44.PNG
--------------------------------------------------------------------------------
/photos/2020-4-17/幻灯片45.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-17/幻灯片45.PNG
--------------------------------------------------------------------------------
/photos/2020-4-17/幻灯片46.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-17/幻灯片46.PNG
--------------------------------------------------------------------------------
/photos/2020-4-17/微信截图_20200417172124.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-17/微信截图_20200417172124.png
--------------------------------------------------------------------------------
/photos/2020-4-17/演示文稿1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-4-17/演示文稿1.png
--------------------------------------------------------------------------------
/photos/2020-6-25/微信截图_20200625211929.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-6-25/微信截图_20200625211929.png
--------------------------------------------------------------------------------
/photos/2020-6-25/微信截图_20200625211953.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-6-25/微信截图_20200625211953.png
--------------------------------------------------------------------------------
/photos/2020-6-25/微信截图_20200625212010.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-6-25/微信截图_20200625212010.png
--------------------------------------------------------------------------------
/photos/2020-6-25/微信截图_20200625213907.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-6-25/微信截图_20200625213907.png
--------------------------------------------------------------------------------
/photos/2020-6-25/微信截图_20200625233707.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-6-25/微信截图_20200625233707.png
--------------------------------------------------------------------------------
/photos/2020-6-25/微信截图_20200625233725.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-6-25/微信截图_20200625233725.png
--------------------------------------------------------------------------------
/photos/2020-6-25/微信截图_20200626230304.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-6-25/微信截图_20200626230304.png
--------------------------------------------------------------------------------
/photos/2020-6-25/欧拉方法详解.md:
--------------------------------------------------------------------------------
1 | ## 高中牛顿力学回顾
2 | 有一个具有一定速度在运动的物体:
3 | 
4 | 当我们需要对其进行模拟时,自然会想起高中的 `位移 = 速度 * 时间`,即:
5 | $$s = v * t$$
6 | 而当该物体具有恒定加速度(恒力)时:
7 | 
8 | 我们可以应用牛顿第二定律,求出物体在 $t$ 时间的速度:
9 | $$v_t = v_0 + \frac Fm * t$$
10 | 因此,我们想获得物体在 $t$ 时间的位置,就可以使用以下公式:
11 | $$s = v_0 * t + \frac 12 * \frac Fm * t^2$$
12 |
13 | 该公式在**理想**情况下,十分合理且正确,比如模拟一个斜方向向上抛出的小球,重力作用下(无空气摩擦),我们必定能得到一个对称的抛物线:
14 | 
15 |
16 | 这都是高中物理课上我们学到的知识,对于简单的模拟已经够用了。
17 |
18 | ## 使用数值方法
19 | 然而,我们要模拟的现实世界往往比较复杂,几乎不可能有受力恒定的情况出现,考虑以下情况:
20 | 
21 | 你能写出红色盒子在之后的每一个时间 $t$ 的位置方程吗?显然这是无比困难的,因为该盒子**受到的外力 $f$ 跟其位置 $p$ 有关**,即 $f$ 与 $p$ 存在某种函数关系,因此,我们可以抽象出物体加速度 $a$ 与 $p$ 的关系:
22 | $$a = \frac {f(t, p)} m$$
23 | 而又因 $a$ 为 速度 $v$ 的一阶阶导数,$v$ 为 $p$ 的一阶导数,因此我们最终得到:
24 | $$\ddot p = \dot v = \frac {f(t, p)} m$$
25 | 这是一个标准的**微分方程**($p$ 上面有一点表示导数),我们从该方程中直接求出 $p$ 基本上是不可能的,因 $f$ 往往很复杂(包含了各种碰撞和约束) 。但是我们可以使用**数值方法**。**数值方法的本质上是用某种方法来近似求出我们需要的解**。使用数值方法我们得不到精确解,但是没所谓,在精度要求不是十分严格的模拟下一般都够用了。
26 |
27 |
28 |
29 | 而又物体的速度 $v$ 为 $p$ 的一阶导数,我们得到:
30 | $$\dot p = v$$
31 | 我们可以将两条微分方程组合起来,使用矩阵表示:
32 | $$\begin{bmatrix}\dot v \\ \dot p\\ \end{bmatrix} = \begin{bmatrix}\frac {f(t, p)} m \\ v\\ \end{bmatrix}$$
33 | 用 $\dot X$ 表示左边的矩阵,$F(t, X)$ 表示右边的矩阵,有:
34 | $$\dot X = F(t, X)$$
35 |
36 | 啰嗦了这么多,就是为了得到这个方程,我们的目标就是要使用数值方法求解出这个方程的 $X$。为什么要求 $X$?因为模拟的本质就是**求某个物体在某一时候应该正确出现的位置(和旋转)**。
37 |
38 |
39 |
40 | 求解微分方程的数值方法有许多,如 **Runge Kutta**,**Mid-point**,还有我之前介绍过的 [Verlet](https://github.com/phenomLi/Blog/issues/31),但我今天介绍最常用也是最基础的三种方法,分别为:
41 | - **显式(向前)欧拉方法:Explicit Euler**
42 | - **隐式(向后)欧拉方法:Implicit Euler**
43 | - **半隐式欧拉方法:Semi-implicit Euler**
44 |
45 | ## 显式(向前)欧拉方法
46 | #### 1. 介绍
47 | 观察我们的方程:
48 | $$\dot X = F(t, X)$$
49 | 求解 $X$ 不容易,但是我们可以从 $\dot X$ 入手。
50 |
51 | 回忆高中数学,若有函数 $f(x)$,那么其导数的定义为:
52 | $$\dot f(x) = \frac {df}{dx} = \lim_{h\to 0}\frac {f(x + h) - f(x)}{h}$$
53 | 但是计算机模拟是离散的,因此步长 $h$ 取不了无限小,只能是一个有一定大小的数,但是我们可以利用这种思想,对 $\dot f(x)$ 进行近似:
54 | $$\dot f(x) \approx\ \frac {f(x + h) - f(x)}{h}$$
55 | **按照这种思路我们可以求出近似的 $\dot X$。**
56 |
57 | 比如,我们要求 $t_1$ 时刻的 $\dot X$,我们可以:
58 | $$\dot X_{1} = F(t_1, X_1) = \frac {X_2 - X_1}{t_2 - t_1}$$
59 | 其中 ${t_2 - t_1}$ 即模拟步长 $h$。那么现在我们可以求 $t_2$ 时刻的 $X$,即 $X_2$ 为:
60 | $$X_2 = X_1 + h * F(t_1, X_1)$$
61 |
62 |
63 |
64 | 这种对于每一个时刻($t_2$),都使用上一时刻($t_1$)的解进行求解的方法即为**显式欧拉方法**,又叫向前欧拉方法。下图显示了显式欧拉方法的细节:
65 | 
66 | 绿线为 $\dot X_{1}$ 的真实值,黑线为显式欧拉的得到的近似值,可以看到是有一定误差存在的,同时也能发现,缩短步长 $h$ 能提高精度。
67 |
68 | 显式欧拉简单高效且容易实现,但是缺点明显。
69 |
70 | #### 2. 稳定性分析
71 | 显式欧拉方法不是**无条件稳定**的方法。这句话我们要理解两个词,首先是**稳定**,第二是**无条件**。稳定指的是在长时间模拟下,得到的数值不会指数级爆炸;无条件指的是在任何微分方程下都能稳定。
72 |
73 | 因此显式欧拉方法在某些方程下能稳定,某些方程下不稳定。我们可以用以下方程来测试:
74 | $$\dot y(t) = -\lambda y(t) \\ y(0) = \hat y$$
75 | 该线性微分方程称为**测试方程**,其中有初始值 $\hat y$,且 **$\lambda > 0$**。
76 |
77 | 该方程的解为 $y = \hat y e^{-\lambda t}$,**显然在 $t \to +\infty$ 时,$y \to 0$**。
78 |
79 | 我们将该测试方程代入到显式欧拉方法的公式里,有:
80 | $$y_{t + 1} = y_t - h\lambda y_t = (1 - h\lambda)y_t $$
81 | 运用数学归纳法,我们可以得到 $y_t$ 与 $\hat y$ 的关系为:
82 | $$y_t = {(1 - h\lambda)}^ty_t$$
83 |
84 | 显然,这是一个指数函数,因此想要在 $t \to +\infty$ 时不发生数值爆炸,我们只能限制:
85 | $$\vert {1 - h\lambda} \vert < 1$$
86 | 也就是只有当 $h\lambda > 0$ 时或 $h\lambda < 2$ 时,不等式才能成立。
87 |
88 | ## 隐式(向后)欧拉方法
89 | #### 1. 介绍
90 | 显式欧拉方法的思路是使用上一时刻的导数($F(t - 1, X_{t - 1})$)去近似当前时刻的结果($X_{t}$)。而隐式欧拉对齐进行了改进:**使用当前时刻的导数($F(t, X_{t})$)近似当前时刻的结果($X_t$)**。这是隐式欧拉和显式欧拉的唯一区别。用公式表示就是:
91 | $$\dot X_{1} = F(t_1, X_1) = \frac {X_1 - X_0}{t_1 - t_0} \\ \Rightarrow X_1 = X_0 + h * F(t_1, X_1)$$
92 |
93 | 
94 |
95 | 绿线为 $\dot X_{1}$ 的真实值,黑线为隐式欧拉的得到的近似值,隐式欧拉同样也会产生误差。
96 |
97 | 也许你会发现一些问题:在 $X_1$ 未求出前,我们怎么能先计算 $F(t_1, X_1)$ 呢?没错这就是隐式欧拉方法最大的缺陷,它**计算困难复杂**,通常需要求解方程组,但是隐式欧拉最大的优点是数值稳定。
98 |
99 | #### 2. 稳定性分析
100 | **隐式欧拉方法是无条件稳定的方法**。使用上面的测试方程,我们对隐式欧拉方法进行同样的操作:
101 | $$y_{t + 1} = y_t - h\lambda y_{t + 1} $$
102 | 整理得:
103 | $$y_{t + 1}(1 + h\lambda) = y_t$$
104 | 对初始值 $\hat y$ 归纳得:
105 | $$y_t = {(\frac {1}{1 + h\lambda})}^t \hat y$$
106 | 我们又得到了一个指数函数,同样想要不发生数值爆炸,只有:
107 | $$\vert \frac {1}{1 + h\lambda} \vert < 1$$
108 | 也就是需要 $\vert 1 + h\lambda \vert > 1$。步长 $h$ 必定是一个正数,又有 $\lambda > 0$(上面有写),因此不等式恒成立。
109 |
110 |
111 | ## 半隐式欧拉方法
112 | 显式欧拉和隐式欧拉都有各种的缺点,因此后人想出了一种新方法,将两者结合了起来。
113 |
114 | 现在让我们忘记 $\dot X = F(t, X)$,回到:
115 | $$\dot v = \frac {f(t, p)} m \\ \dot p = v$$
116 |
117 | 对其使用显式欧拉积分,有:
118 | $$v_{t + 1} = v_t + h * \frac {f(t, p_t)} m \\ p_{t + 1} = p_t + h * v_t$$
119 |
120 | 既然对两条方程都使用隐式欧拉比较难求解,那么我们就仅对较简单的那条方程使用隐式欧拉:
121 | 
122 |
123 | 红框显式了该方法与显式欧拉的唯一不同之处,我们使用显式欧拉求解速度,用隐式欧拉求解位置,这种混合的方法就叫**半隐式欧拉方法**。
124 |
125 | 半隐式欧拉方法相比于隐式欧拉方法更容易实现,速度更快,相比显式欧拉要更稳定些,**但并不是无条件稳定**。在大部分情况下半隐式欧拉方法都能稳定,除了某些极端条件(比如非常大的参数)。所以半隐式欧拉在刚体模拟下是最常用,也是首推的。
126 |
127 | ## 总结
128 | - **显式欧拉:简单,快,不稳定**
129 | - **隐式欧拉:复杂,慢,稳定**
130 | - **半隐式欧拉:简单,快,大部分情况稳定(刚体模拟首推)**
131 |
132 |
--------------------------------------------------------------------------------
/photos/2020-8-21/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-8-21/1.png
--------------------------------------------------------------------------------
/photos/2020-8-21/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-8-21/2.png
--------------------------------------------------------------------------------
/photos/2020-8-21/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-8-21/3.png
--------------------------------------------------------------------------------
/photos/2020-8-21/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-8-21/4.png
--------------------------------------------------------------------------------
/photos/2020-8-21/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-8-21/5.png
--------------------------------------------------------------------------------
/photos/2020-8-21/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-8-21/6.png
--------------------------------------------------------------------------------
/photos/2020-8-21/微信截图_20200824152518.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-8-21/微信截图_20200824152518.png
--------------------------------------------------------------------------------
/photos/2020-8-21/微信截图_20200824205308.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/2020-8-21/微信截图_20200824205308.png
--------------------------------------------------------------------------------
/photos/QQ20180215-232321-HD.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/QQ20180215-232321-HD.gif
--------------------------------------------------------------------------------
/photos/QQ20180216-150758-HD.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/QQ20180216-150758-HD.gif
--------------------------------------------------------------------------------
/photos/WX20170921-174437.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20170921-174437.png
--------------------------------------------------------------------------------
/photos/WX20170921-181442.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20170921-181442.png
--------------------------------------------------------------------------------
/photos/WX20170921-181753.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20170921-181753.png
--------------------------------------------------------------------------------
/photos/WX20170921-183411.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20170921-183411.png
--------------------------------------------------------------------------------
/photos/WX20170921-185537.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20170921-185537.png
--------------------------------------------------------------------------------
/photos/WX20170921-190451.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20170921-190451.png
--------------------------------------------------------------------------------
/photos/WX20170922-005153.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20170922-005153.png
--------------------------------------------------------------------------------
/photos/WX20170922-005212.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20170922-005212.png
--------------------------------------------------------------------------------
/photos/WX20170922-005222.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20170922-005222.png
--------------------------------------------------------------------------------
/photos/WX20170922-191359.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20170922-191359.png
--------------------------------------------------------------------------------
/photos/WX20170922-201509.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20170922-201509.png
--------------------------------------------------------------------------------
/photos/WX20170922-201718.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20170922-201718.png
--------------------------------------------------------------------------------
/photos/WX20170922-203921.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20170922-203921.png
--------------------------------------------------------------------------------
/photos/WX20170927-164552.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20170927-164552.png
--------------------------------------------------------------------------------
/photos/WX20171004-163706.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20171004-163706.png
--------------------------------------------------------------------------------
/photos/WX20171004-163720.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20171004-163720.png
--------------------------------------------------------------------------------
/photos/WX20171004-163737.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20171004-163737.png
--------------------------------------------------------------------------------
/photos/WX20171007-162105.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20171007-162105.png
--------------------------------------------------------------------------------
/photos/WX20171007-162201.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20171007-162201.png
--------------------------------------------------------------------------------
/photos/WX20171027-145452.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20171027-145452.png
--------------------------------------------------------------------------------
/photos/WX20171027-150804.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20171027-150804.png
--------------------------------------------------------------------------------
/photos/WX20171118-174023.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20171118-174023.png
--------------------------------------------------------------------------------
/photos/WX20171118-174054.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20171118-174054.png
--------------------------------------------------------------------------------
/photos/WX20171118-174146.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20171118-174146.png
--------------------------------------------------------------------------------
/photos/WX20171118-180403.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20171118-180403.png
--------------------------------------------------------------------------------
/photos/WX20171217-144424.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20171217-144424.png
--------------------------------------------------------------------------------
/photos/WX20171217-164740.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20171217-164740.png
--------------------------------------------------------------------------------
/photos/WX20171217-172907.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20171217-172907.png
--------------------------------------------------------------------------------
/photos/WX20180123-171737.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20180123-171737.png
--------------------------------------------------------------------------------
/photos/WX20180123-172138.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20180123-172138.png
--------------------------------------------------------------------------------
/photos/WX20180126-204943.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20180126-204943.png
--------------------------------------------------------------------------------
/photos/WX20180126-221306.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20180126-221306.png
--------------------------------------------------------------------------------
/photos/WX20180126-222821.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20180126-222821.png
--------------------------------------------------------------------------------
/photos/WX20180216-153600.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20180216-153600.png
--------------------------------------------------------------------------------
/photos/WX20180301-155602.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20180301-155602.png
--------------------------------------------------------------------------------
/photos/WX20180301-170653.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20180301-170653.png
--------------------------------------------------------------------------------
/photos/WX20180301-181418.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20180301-181418.png
--------------------------------------------------------------------------------
/photos/WX20180301-184956.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20180301-184956.png
--------------------------------------------------------------------------------
/photos/WX20180301-185009.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20180301-185009.png
--------------------------------------------------------------------------------
/photos/WX20180301-185025.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20180301-185025.png
--------------------------------------------------------------------------------
/photos/WX20180301-185728.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20180301-185728.png
--------------------------------------------------------------------------------
/photos/WX20180407-171606.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20180407-171606.png
--------------------------------------------------------------------------------
/photos/WX20180407-171726.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20180407-171726.png
--------------------------------------------------------------------------------
/photos/WX20180407-171751.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/WX20180407-171751.png
--------------------------------------------------------------------------------
/photos/v2-cd7ea6b5b6a25d949014f5215cc31315_hd.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/v2-cd7ea6b5b6a25d949014f5215cc31315_hd.jpg
--------------------------------------------------------------------------------
/photos/vdom-diff.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/vdom-diff.png
--------------------------------------------------------------------------------
/photos/微信截图_20171118191326.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/微信截图_20171118191326.png
--------------------------------------------------------------------------------
/photos/微信截图_20171223132238.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/微信截图_20171223132238.png
--------------------------------------------------------------------------------
/photos/微信截图_20171223135321.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phenomLi/Blog/938066b77dee894cb7fb6c4c75d3d50e1681f943/photos/微信截图_20171223135321.png
--------------------------------------------------------------------------------