{"blog_url":"https://usagi.hatenablog.jp/","provider_url":"https://hatena.blog","author_name":"USAGI-WRP","width":"100%","url":"https://usagi.hatenablog.jp/entry/2020/02/24/110906","image_url":"https://i.imgur.com/pSZbsJ3.png","categories":["OpenSCAD","animation","number sequeced files","ffmpeg","convert","apng","png","mp4","h.264"],"type":"rich","provider_name":"Hatena Blog","title":"OpenSCAD \u3067\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u6210 -> \u9023\u756aPNG -> ffmpeg \u3067 apng/mp4(h.264) \u306b\u3059\u308b\u65b9\u6cd5\u306e\u30e1\u30e2","published":"2020-02-24 11:09:06","author_url":"https://blog.hatena.ne.jp/USAGI-WRP/","version":"1.0","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fusagi.hatenablog.jp%2Fentry%2F2020%2F02%2F24%2F110906\" title=\"OpenSCAD \u3067\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u6210 -&gt; \u9023\u756aPNG -&gt; ffmpeg \u3067 apng/mp4(h.264) \u306b\u3059\u308b\u65b9\u6cd5\u306e\u30e1\u30e2 - C++ \u3068\u304d\u3069\u304d \u3054\u306f\u3093\u3001\u308f\u308a\u3068\u3066\u3043\u30fc\u3076\u308c\u3044\u304f\u2606\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","blog_title":"C++ \u3068\u304d\u3069\u304d \u3054\u306f\u3093\u3001\u308f\u308a\u3068\u3066\u3043\u30fc\u3076\u308c\u3044\u304f\u2606","description":"1. OpenSCAD \u3067\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u308b https://github.com/usagi/usagi.scad/blob/master/example/utility/color/HSL.scad use <../../../utility/color/HSL.scad> $fn = 6; for ( L = [ 0 : 1 / 6: 1 ] ) for ( S = [ 0 : 1 / 5: 1 ] ) for ( H = [ 0 : 30 : S > 0 ? 360 - 1 : 0 ] ) translate( [ S * cos( H ), S * sin( H ), L - 0.\u2026","height":"190"}