{"id":9148,"date":"2023-01-29T23:08:35","date_gmt":"2023-01-29T14:08:35","guid":{"rendered":"https:\/\/minnano.app\/support\/?p=9148"},"modified":"2023-01-29T23:24:34","modified_gmt":"2023-01-29T14:24:34","slug":"env_pri_cat_29","status":"publish","type":"post","link":"https:\/\/minnano.app\/support\/2023\/01\/29\/env_pri_cat_29\/","title":{"rendered":"\u30b2\u30fc\u30e0\u5236\u4f5c \u74b0\u5883\u539f\u732b 29\u65e5\u76ee"},"content":{"rendered":"\n<p><a href=\"https:\/\/minnano.app\/support\/2023\/01\/28\/env_pri_cat_28\/\">\u6628\u65e5<\/a>\u306f<a href=\"https:\/\/minnano.app\/support\/2023\/01\/08\/env_pri_cat_8\/\">\u6c34\u5206\u5b50<\/a>\u3092\u3001\u753b\u50cf\u3092\u4f7f\u308f\u305a\u306b\u30b7\u30a7\u30fc\u30c0\u306e\u307f\u3067\u63cf\u753b\u3059\u308b\u3088\u3046\u306b\u5909\u66f4\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u4eca\u65e5\u306f\u6c34\u5206\u5b50\u3092\u3001\u7a7a\u6c17\u4e2d\u3092\u98db\u3073\u56de\u3063\u3066\u3044\u308b\u30a4\u30e1\u30fc\u30b8\u3067\u30b0\u30ea\u30b0\u30ea\u52d5\u304b\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u30b3\u30fc\u30c9\u306e\u5909\u66f4\u7b87\u6240\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>let mut vertices: Vec&lt;f32&gt; = Vec::with_capacity(POINTS * 3);\n<strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#ff0000\" class=\"has-inline-color\">let mut vertices_speed: Vec&lt;f32&gt; = Vec::with_capacity(POINTS * 2);<\/mark><\/strong>\nlet mut rng = rand::thread_rng();\nfor _i in 0..POINTS {\n    vertices.push(rng.gen_range(-1.0..1.0));    \/\/ x\n    vertices.push(rng.gen_range(-1.0..1.0));    \/\/ y\n    vertices.push(0.0);                         \/\/ z\n<strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f50000\" class=\"has-inline-color\">    vertices_speed.push(rng.gen_range(-0.01..0.01));    \/\/ speed x\n    vertices_speed.push(rng.gen_range(-0.01..0.01));    \/\/ speed y<\/mark><\/strong>\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#ff0000\" class=\"has-inline-color\">\/\/ move points\nfor i in 0..POINTS {\n    let base_pos = i * 3;\n    let base_speed = i * 2;\n    \/\/ x\u65b9\u5411\n    if 1.0 &lt; vertices&#91;base_pos + 0] || vertices&#91;base_pos + 0] &lt; -1.0 {\n        vertices_speed&#91;base_speed + 0] *= -1.0;\n    }\n    vertices&#91;base_pos + 0] += vertices_speed&#91;base_speed + 0];\n    \/\/ y\u65b9\u5411\n    if 1.0 &lt; vertices&#91;base_pos + 1] || vertices&#91;base_pos + 1] &lt; -1.0 {\n        vertices_speed&#91;base_speed + 1] *= -1.0;\n    }\n    vertices&#91;base_pos + 1] += vertices_speed&#91;base_speed + 1];\n}\nunsafe {\n    gl::BindBuffer(gl::ARRAY_BUFFER, vbo);\n    gl::BufferData(\n        gl::ARRAY_BUFFER,                                                       \/\/ target\n        (vertices.len() * std::mem::size_of::&lt;f32&gt;()) as gl::types::GLsizeiptr, \/\/ size of data in bytes\n        vertices.as_ptr() as *const gl::types::GLvoid, \/\/ pointer to data\n        gl::STREAM_DRAW,                               \/\/ usage\n    );\n    gl::BindBuffer(gl::ARRAY_BUFFER, 0);\n} <\/mark><\/strong>\n\/\/ draw points\nunsafe {\n    gl::BindVertexArray(vao);\n    gl::DrawArrays(\n        gl::POINTS,     \/\/ mode\n        0,              \/\/ starting index in the enabled arrays\n        POINTS as i32,  \/\/ number of indices to be rendered\n    );\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>unsafe {\n    gl::BindBuffer(gl::ARRAY_BUFFER, vbo);\n    gl::BufferData(\n        gl::ARRAY_BUFFER,                                                       \/\/ target\n        (vertices.len() * std::mem::size_of::&lt;f32&gt;()) as gl::types::GLsizeiptr, \/\/ size of data in bytes\n        vertices.as_ptr() as *const gl::types::GLvoid, \/\/ pointer to data\n        gl::<mark style=\"background-color:rgba(0, 0, 0, 0);color:#fb0000\" class=\"has-inline-color\"><strong>STREAM_DRAW<\/strong><\/mark>,                               \/\/ usage\n    );\n    gl::BindBuffer(gl::ARRAY_BUFFER, 0);\n}<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"\u74b0\u5883\u539f\u732b \u5206\u5b50\u904b\u52d5\" width=\"474\" height=\"267\" src=\"https:\/\/www.youtube.com\/embed\/LF0e2YanlDA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Rust\u306e\u30b3\u30fc\u30c9\u4e0a\u3067\u63cf\u753b\u4f4d\u7f6e\u3092\u5909\u66f4\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u3053\u308c\u3060\u3068\u30dd\u30a4\u30f3\u30c8\u6570\u304c\u5897\u3048\u305f\u5834\u5408\u306b\u8ca0\u8377\u304c\u30e4\u30d0\u305d\u3046\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u660e\u65e5\u304b\u3089\u306f\u306a\u308b\u3079\u304f\u30b7\u30a7\u30fc\u30c0\u306b\u4ed5\u4e8b\u3092\u3055\u305b\u3089\u308c\u306a\u3044\u304b\u691c\u8a0e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p><a href=\"https:\/\/minnano.app\/support\/2023\/01\/30\/env_pri_cat_30\/\">\u6b21\u306e\u65e5<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6628\u65e5\u306f\u6c34\u5206\u5b50\u3092\u3001\u753b\u50cf\u3092\u4f7f\u308f\u305a\u306b\u30b7\u30a7\u30fc\u30c0\u306e\u307f\u3067\u63cf\u753b\u3059\u308b\u3088\u3046\u306b\u5909\u66f4\u3057\u307e\u3057\u305f\u3002 \u4eca\u65e5\u306f\u6c34\u5206\u5b50\u3092\u3001\u7a7a\u6c17\u4e2d\u3092\u98db\u3073\u56de\u3063\u3066\u3044\u308b\u30a4\u30e1\u30fc\u30b8\u3067\u30b0\u30ea\u30b0\u30ea\u52d5\u304b\u3057\u307e\u3057\u305f\u3002 \u30b3\u30fc\u30c9\u306e\u5909\u66f4\u7b87\u6240\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\u3002 Rust\u306e\u30b3\u30fc\u30c9\u4e0a\u3067\u63cf\u753b\u4f4d\u7f6e\u3092\u5909\u66f4\u3057\u3066 &hellip; <a href=\"https:\/\/minnano.app\/support\/2023\/01\/29\/env_pri_cat_29\/\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">\u30b2\u30fc\u30e0\u5236\u4f5c \u74b0\u5883\u539f\u732b 29\u65e5\u76ee<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[],"class_list":["post-9148","post","type-post","status-publish","format-standard","hentry","category-23"],"_links":{"self":[{"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/posts\/9148","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/comments?post=9148"}],"version-history":[{"count":4,"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/posts\/9148\/revisions"}],"predecessor-version":[{"id":9152,"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/posts\/9148\/revisions\/9152"}],"wp:attachment":[{"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/media?parent=9148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/categories?post=9148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/tags?post=9148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}