{"id":9931,"date":"2026-08-21T15:50:30","date_gmt":"2026-08-21T07:50:30","guid":{"rendered":"http:\/\/pipingpig.com\/index.php\/2026\/08\/21\/s3d%ef%bc%8cfeatrue%e6%b5%81%e5%90%91%e5%88%a4%e6%96%ad\/"},"modified":"2026-08-21T15:50:30","modified_gmt":"2026-08-21T07:50:30","slug":"s3d%ef%bc%8cfeatrue%e6%b5%81%e5%90%91%e5%88%a4%e6%96%ad","status":"publish","type":"post","link":"https:\/\/www.pipingpig.com\/index.php\/2026\/08\/21\/s3d%ef%bc%8cfeatrue%e6%b5%81%e5%90%91%e5%88%a4%e6%96%ad\/","title":{"rendered":"S3D\uff0cFeatrue\u6d41\u5411\u5224\u65ad"},"content":{"rendered":"<p>\u5173\u952e\u8bcd\uff1a Featrue\uff0c Vector\uff0c Flow \u95ee\u9898\u63cf\u8ff0\uff1a\u6211\u4eec\u77e5\u9053Flow\u53c2\u6570\uff0c\u662f\u5728Run\u4e2d\u8bbe\u7f6e\u3002Feature\u7684\u4e24\u4e2a\u7aef\u70b9\uff0c\u901a\u8fc7Featrue\u81ea\u8eab\u5c5e\u6027\uff0c\u5f88\u96be\u67e5\u51fa\u7aef\u70b9\u7684\u8fdb\u51fa\u5173\u7cfb\u3002\u5982\u4f55\u5224\u65adFeature\u7aef\u70b9\u7684In\uff0cOut\u903b\u8f91\u662f\u672c\u6b21\u5206\u4eab\u7684\u5173\u952e\u70b9\u3002 \u6838\u5fc3\u903b\u8f91\u5728 GetFlowVectorFromPipeFeatrue \u65b9\u6cd5\uff0c40 \u4f59\u884c\u3002\u6b64\u65b9\u6cd5 \u4f1a\u8fd4\u56de\u4e00\u4e2a Vector \u7c7b\u578b\u6570\u636e\u3002\u8fd9\u4e2a\u5411\u91cfVector\u7684\u7bad\u5934\uff0c\u5c31\u662f\u6d41\u5411\u3002 \u611f\u5174\u8da3\u7684\u4f19\u4f34\uff0c\u53ef\u4ee5\u6572\u5230\u81ea\u5df1\u7684\u73af\u5883\u91cc\uff0c\u5c1d\u8bd5\u4e0b\u3002 \/\/\u663e\u793a\u6d41\u5411\u65b9\u6cd5 public Vector DisplayFeatureFlow (RouteFeature routeFeature) { ReadOnlyCollection&lt;BusinessObject&gt; legFeatrues = null ; PipeRun cePiperun = routeFeature.SystemParent as PipeRun; List&lt;BusinessObject&gt; legFeatruesList = new List &lt;BusinessObject&gt;(); int ceFeatureIndex = 0 ; if (routeFeature.Legs.Count &gt; 0 ) { legFeatrues = routeFeature.Legs[ 0 ].GetRelationship( &quot;AlongLeg&quot; , &quot;theIJRtePathFeat&quot; ).TargetObjects; legFeatruesList = legFeatrues.ToList(); } if (legFeatruesList.Count &gt; 0 ) { if (cePiperun.FlowDirection != 1 &amp;&amp; cePiperun.FlowDirection != 2 ) { \/\/\u9664\u4e86IN\u548cOUT\u6d41\u5411 System.Windows.Forms.MessageBox.Show( &quot;Flow No Require&quot; ); return null ; } \/\/\u5224\u65ad\u6d41\u5411OUT-1 else if (cePiperun.FlowDirection == 1 ) { \/\/OUT&#8212;&gt;\u53cd\u8f6c\u96c6\u5408 legFeatruesList.Reverse(); ceFeatureIndex = legFeatruesList.IndexOf(routeFeature); } \/\/\u5224\u65ad\u6d41\u5411IN-2 else if (cePiperun.FlowDirection == 2 ) { \/\/IN\u65e0\u9700\u8c03\u6574\u6d41\u5411 ceFeatureIndex = legFeatruesList.IndexOf(routeFeature); } foreach ( var item in legFeatruesList) { \/\/\u9ad8\u4eae if (legFeatruesList.IndexOf(item) == ceFeatureIndex &#8211; 1 ) { ceHiliterYellowIn.HilitedObjects.Add(item); Thread.Sleep( 50 ); } if (legFeatruesList.IndexOf(item) == ceFeatureIndex + 1 ) { ceHiliterBlueOut.HilitedObjects.Add(item); Thread.Sleep( 50 ); } } } \/\/\u4ee5\u4e0b\u83b7\u53d6Vector\uff0c\u6d41\u5411\u83b7\u5f97\u5411\u91cf int lastKey = legFeatruesList.Count &#8211; 1 ; Position positionOrigin = ((RouteFeature)legFeatruesList[ 0 ]).Location; Position positionDestination = ((RouteFeature)legFeatruesList[lastKey]).Location; Vector vector = positionDestination.Subtract(positionOrigin); return vector; }<\/p>\n<p><video controls preload=\"metadata\" style=\"width:100%;max-width:860px;border-radius:8px\" src=\"https:\/\/www.pipingpig.com\/wp-content\/uploads\/2026\/08\/ersrc_v\/52_S3D\uff0cFeatrue\u6d41\u5411\u5224\u65ad.mp4\"><\/video><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5173\u952e\u8bcd\uff1a Featrue\uff0c Vector\uff0c Flow \u95ee\u9898\u63cf\u8ff0\uff1a\u6211\u4eec\u77e5\u9053Flow\u53c2\u6570\uff0c\u662f\u5728Run\u4e2d\u8bbe\u7f6e\u3002Fea [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":9930,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[28],"tags":[],"class_list":["post-9931","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/www.pipingpig.com\/index.php\/wp-json\/wp\/v2\/posts\/9931","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pipingpig.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pipingpig.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pipingpig.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pipingpig.com\/index.php\/wp-json\/wp\/v2\/comments?post=9931"}],"version-history":[{"count":0,"href":"https:\/\/www.pipingpig.com\/index.php\/wp-json\/wp\/v2\/posts\/9931\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pipingpig.com\/index.php\/wp-json\/wp\/v2\/media\/9930"}],"wp:attachment":[{"href":"https:\/\/www.pipingpig.com\/index.php\/wp-json\/wp\/v2\/media?parent=9931"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pipingpig.com\/index.php\/wp-json\/wp\/v2\/categories?post=9931"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pipingpig.com\/index.php\/wp-json\/wp\/v2\/tags?post=9931"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}