{"id":4162,"date":"2018-06-20T21:28:00","date_gmt":"2018-06-20T13:28:00","guid":{"rendered":"http:\/\/www.bookcard.net\/wordpress\/?p=4162"},"modified":"2018-06-20T21:50:32","modified_gmt":"2018-06-20T13:50:32","slug":"game_model_sphere","status":"publish","type":"post","link":"https:\/\/www.bookcard.net\/wordpress\/game_model_sphere\/","title":{"rendered":"\u904a\u6232\u5efa\u6a21\u4e4b\u908a\u754c\u7403"},"content":{"rendered":"<figure id=\"attachment_4166\" aria-describedby=\"caption-attachment-4166\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/06\/GAME_MODEL_SPHERE.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4166\" src=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/06\/GAME_MODEL_SPHERE.jpg\" alt=\"\" width=\"1024\" height=\"768\" srcset=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/06\/GAME_MODEL_SPHERE.jpg 1024w, https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/06\/GAME_MODEL_SPHERE-300x225.jpg 300w, https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/06\/GAME_MODEL_SPHERE-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption id=\"caption-attachment-4166\" class=\"wp-caption-text\">\u904a\u6232\u5efa\u6a21\u4e4b\u908a\u754c\u7403<\/figcaption><\/figure>\n<p>\u57283D\u904a\u6232\u4e2d\u5e38\u5c0d\u300e3D\u6a21\u578b\u300f\u9032\u884c\u591a\u908a\u5f62\u300e\u78b0\u649e\u6aa2\u6e2c\u300f.\u4f8b\u5982\u6b66\u5668\u64ca\u4e2d\u300e\u7246\u9ad4\u300f\u6216\u300e\u602a\u7269\u300f.\u6700\u5bb9\u6613\u6700\u5e38\u7528\u662f\u300e\u908a\u754c\u7403\u300f\u9032\u300e\u78b0\u649e\u6aa2\u6e2c\u300f.\u6bcf\u500b\u300e\u908a\u754c\u7403\u300f\u5747\u75313D\u6a21\u578b\u300e\u4e2d\u5fc3\u9ede\u300f\u8207\u300e\u534a\u5f91\u300f. \u9019\u300e\u534a\u5f91\u300f\u4e26\u4e0d\u4e00\u5b9a\u662f\u6700\u9577\u534a\u5f91,\u901a\u5e38\u9019\u500b\u503c\u53ea\u5305\u88f9\u6838\u5fc3\u90e8\u5206.\u5b9a\u7fa93D\u7403\u9ad4:<\/p>\n<p>typedef struct SPHERE3D_TYP{<\/p>\n<p>float\u00a0\u00a0\u00a0 x, y, z;\/\/ \u4e2d\u5fc3\u9ede<\/p>\n<p>float\u00a0\u00a0\u00a0 radius;\/\/ \u7403\u9ad4\u534a\u5f91<\/p>\n<p>}SPHERE3D,* SPHERE3D_PTR;<\/p>\n<p>&nbsp;<\/p>\n<p>\u300e3D\u6a21\u578b\u300f\u6700\u5927\u534a\u5f91\u8207\u5e73\u5747\u5e73\u5f91\u53ef\u904d\u6b77\u6240\u6709\u9802\u9ede\u800c\u53d6\u5f97:<\/p>\n<p>1.\u6a21\u578b\u534a\u5f91\u524d\u8a2d\u70ba\u96f6<\/p>\n<p>radius_avg = 0;\/\/ \u5e73\u5747\u534a\u5f91<\/p>\n<p>radius_max = 0;\/\/ \u6700\u5927\u534a\u5f91<\/p>\n<p>2.\u904d\u6b773D\u6a21\u578b\u6240\u6709\u9802\u9ede<\/p>\n<p>for (int index = 0; index &lt; vertex_num; ++index)<\/p>\n<p>{<\/p>\n<p>3.\u8a08\u7b973D\u9802\u9ede\u8207\u4e2d\u5fc3\u8ddd\u96e2<\/p>\n<p>float dist = (float)sqrt(vertex_array[index].x*vertex_array[index].x +<\/p>\n<p>vertex_array[index].y*vertex_array[index].y +<\/p>\n<p>vertex_array[index].z *vertex_array[index].z);<\/p>\n<p>4.\u7d2f\u52a0\u534a\u5f91<\/p>\n<p>radius_avg = radius_avg + dist;<\/p>\n<p>5.\u6c42\u5f97\u6700\u5927\u534a\u5f91<\/p>\n<p>if (dist &gt; radius_max)<\/p>\n<p>radius_max = dist;<\/p>\n<p>}<\/p>\n<p>6.\u8a08\u7b97\u5e73\u5747\u534a\u5f91<\/p>\n<p>radius_avg = radius_avg \/ vertex_num;<\/p>\n<p>&nbsp;<\/p>\n<p>\u8981\u5c0d\u5169\u300e\u908a\u754c\u7403\u300f\u9032\u884c\u300e\u78b0\u649e\u6aa2\u6e2c\u300f\u53ea\u9700\u6c42\u5f97\u5169\u300e\u908a\u754c\u7403\u300f\u4e4b\u8ddd,\u7136\u5f8c\u8207\u5169\u300e\u908a\u754c\u7403\u300f\u534a\u5f91\u4e4b\u548c\u9032\u884c\u6bd4\u8f03:<\/p>\n<p>bool Compute_Sphere3D_In_Sphere3D(SPHERE3D_PTR sphereA, SPHERE3D_PTR sphereB)<\/p>\n<p>{1.\u8a08\u7b97\u5169\u9802\u9edeXYZ\u5206\u91cf\u8ddd\u96e2<\/p>\n<p>float x = sphereA-&gt;x &#8211; sphereB-&gt;x;<\/p>\n<p>float y = sphereA-&gt;y &#8211; sphereB-&gt;y;<\/p>\n<p>float z = sphereA-&gt;z &#8211; sphereB-&gt;z;<\/p>\n<p>2.\u7403\u9ad4\u8ddd\u96e2<\/p>\n<p>float dist = sqrtf(x*x + y * y + z * z);<\/p>\n<p>3.\u534a\u5f91\u4e4b\u548c\u9032\u884c\u6bd4\u8f03<\/p>\n<p>if (dist &lt; (sphereA-&gt;radius + sphereB-&gt;radius))<\/p>\n<p>return true;\/\/ \u7403\u9ad4\u91cd\u758a\/\u78b0\u649e<\/p>\n<p>else<\/p>\n<p>return false;\/\/<\/p>\n<p>}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u57283D\u904a\u6232\u4e2d\u5e38\u5c0d\u300e3D\u6a21\u578b\u300f\u9032\u884c\u591a\u908a\u5f62\u300e\u78b0\u649e\u6aa2\u6e2c\u300f.\u4f8b\u5982\u6b66\u5668\u64ca\u4e2d\u300e\u7246\u9ad4\u300f\u6216\u300e\u602a\u7269\u300f.\u6700\u5bb9\u6613\u6700\u5e38\u7528\u662f\u300e\u908a\u754c\u7403\u300f\u9032 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/game_model_sphere\/\" class=\"more-link\">\u7e7c\u7e8c\u95b1\u8b80 <span class=\"screen-reader-text\">\u904a\u6232\u5efa\u6a21\u4e4b\u908a\u754c\u7403<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14,11],"tags":[41,42],"class_list":["post-4162","post","type-post","status-publish","format-standard","hentry","category-tech","category-algorithm","tag-science","tag-computer","entry"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/4162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/comments?post=4162"}],"version-history":[{"count":4,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/4162\/revisions"}],"predecessor-version":[{"id":4168,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/4162\/revisions\/4168"}],"wp:attachment":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/media?parent=4162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/categories?post=4162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/tags?post=4162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}