草庐IT

r sf 包质心在多边形内

全部标签

c# - 如何在四边形中找到一个随机点?

我必须能够为模拟飞行设置航路点的随机位置。数学挑战很简单:“要在四边形内找到一个随机位置,该点在任何位置的可能性均等。”视觉上是这样的:ABCD四边形的例子是:答:[21417.7837105.97]乙:[38197.3224009.74]客服:[1364.192455.54]D:[1227.7737378.81]在此先感谢您提供的任何帮助。:-)编辑谢谢大家的回复。我将在周末查看此内容,然后将授予已接受的答案。顺便说一句,我应该提到四边形可以是凸面或凹面。抱歉了。 最佳答案 将四边形分成两个三角形,然后使用thisexcellen

c# - 在C#中计算不规则多边形的面积

我已经设法写了一个“傻瓜”如何在C#中计算不规则多边形的面积,但我需要它对于任何数量的顶点都是动态的。有人可以帮忙吗?类:publicclassVertex{privateint_vertexIdx;privatedouble_coordX;privatedouble_coordY;privatedouble_coordZ;publicVertex(){}publicVertex(intvertexIdx,doublecoordX,doublecoordY,doublecoordZ){_vertexIdx=vertexIdx;_coordX=coordX;_coordY=coordY;

c# - 获取中心多边形 C#

这个问题在这里已经有了答案:Whatisthefastestwaytofindthe"visual"centerofanirregularlyshapedpolygon?(15个答案)关闭9年前。我可以使用什么算法来获取多边形的中心(红点)情况1:我尝试使用maxX、maxY、minX、minY,但我得到了错误的点(黑点)情况2:我尝试获取第二个最大和最小坐标X和Y,但我遇到点小于5的多边形情况3:我添加ifpointcount但我得到了一些多边形的错误你能告诉我适合我的算法吗??注意:第四张图片的解释//mameanmax,mimeanmin,X1meanfirst,X2meanse

c# - 在不规则多边形中寻找点的算法

假设我有一个如下所示的多边形:我正在寻找一种C#算法,通过它我可以在任何多边形内找到一个点(可以是中间点,也可以是随机点)。为了找到质心,我使用了以下算法:privatePoint3dGetPolyLineCentroid(DBObjectpObject,doublepImageWidth,doublepImageHeight){Point2d[]pointArray=GetPointArrayOfRoomPolygon(pObject);doublecentroidX=0.0;doublecentroidY=0.0;doublesignedArea=0.0;doublex0=0.0;

c# - WPF bing map 控制多段线/多边形不首先绘制添加到集合

我正在处理这个表面项目,我们有一个bingmap控件,我们想通过使用数据绑定(bind)在map上绘制多段线。发生的奇怪行为是当我单击“添加”按钮时,map上没有任何反应。如果我稍微移动map,就会在map上绘制多段线。另一种可行的情况是单击添加按钮一次,没有任何反应,再次单击它会绘制两条折线。(在我的手动收藏中,我有4个LocationCollections)所以第三次单击和第四次单击再次绘制两条线时也会发生同样的情况。我完全不知道该去哪里解决这个问题。我尝试订阅Layoutupdated事件,这两种情况都会发生。还在observablecollection中添加了一个collect

c# - 用多边形逼近椭圆

我正在处理地理信息,最近我需要画一个椭圆。为了与OGC约定兼容,我不能按原样使用椭圆;相反,我通过使用椭圆包含的多边形并使用任意多个点来使用多边形来近似椭圆。我用于为给定数量的点N生成椭圆的过程如下(使用C#和一个虚构的多边形类):PolygonCreateEllipsePolygon(Coordinatecenter,doubleradiusX,doubleradiusY,intnumberOfPoints){Polygonresult=newPolygon();for(inti=0;i到目前为止,这对我很有用,但我注意到它有一个问题:如果我的椭圆是“粗壮的”,即radiusX比ra

c# - 从顶点组合中找到最小的不规则多边形(性能关键)

我需要在二维平面上的几个顶点中找到一个表面积最小的不规则多边形。不,这不是家庭作业。虽然我希望我现在回到学校。对于如何构建多边形有一些要求。假设我在8x8网格上绘制了3种不同类型的顶点(红色、绿色、蓝色)。我需要扫描此网格中满足红、绿、蓝组合要求的所有顶点,并选择表面积最小的顶点。获取不规则多边形的表面积非常简单。我主要关心的是高效扫描所有可能组合的性能。有关示例,请参见下图。所有三种类型都用于制作多边形,但圈出的一种具有最小的表面积,这是我的目标。与我尝试制作的原型(prototype)相比,这个场景得到了简化。多边形将由数十个(如果不是数百个)顶点构成,并且网格将大得多。此外,这将

c# - 根据 SQL Server 地理数据类型在 Google map 上显示多边形

我有一个SQLServer2008数据库,其中有一列地理类型存储澳大利亚各个地区的形状。我希望能够在Googlemap上绘制这些形状。这是一个ASP.NETC#网站。我已经搜索了有关如何执行此操作的任何示例,但找不到任何内容?有没有人有一些关于如何执行此操作的示例,特别是使用来自SQLServer的地理数据? 最佳答案 AdamW的回答是正确的,但是没有解决SqlGeography数据格式中的数据。包括对Microsoft.SqlServer.Types的引用SqlCommandcmd=newSqlCommand("SELECTST

javascript - 检查一个点是否在 OpenLayers 3 中的多边形内

当我在OpenLayersmap中绘制多边形时,我想知道标记是否在多边形内部。我在OpenLayersAPI中搜索,但没有找到解决方案。你可以在这个link中看到我的完整代码.我的印象是我必须修改这个功能:functionaddInteraction(){varvalue=typeSelect.value;if(value!=='None'){draw=newol.interaction.Draw({source:vectorSource,type:/**@type{ol.geom.GeometryType}*/(typeSelect.value)});map.addInteracti

javascript - 从 map 中移除多边形

要求:使用Leafletjsmapsapi,当客户点击标记时,应在标记正下方绘制一个矩形,并根据标记居中。然后单击另一个标记应删除以前的矩形并在新单击的标记下方绘制另一个矩形。问题:我正在使用下面的代码绘制一个多边形,我可以看到一个矩形。然后它在标记上绘制矩形。然后通过点击另一个标记,一个新的矩形被绘制出来。但是旧的矩形也仍然存在。问题:我应该如何实现该行为,以便在点击新标记时,旧矩形将从map中删除?//polygonvarlatBlockSize=0.002;varlngBlockSize=0.002;varroute=[newL.LatLng(parseFloat(custome