在CSS Tricks上有很多不同的CSS形状- CSS的形状,我特别对三角形感到困惑:
#triangle-up {
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 100px solid red;
}
Run Code Online (Sandbox Code Playgroud)
<div id="triangle-up"></div>
Run Code Online (Sandbox Code Playgroud)
它是如何以及为什么有效?
我正在尝试在多边形算法中创建一个快速 2D点,用于命中测试(例如Polygon.contains(p:Point)
).对于有效技术的建议将不胜感激.
graphics performance polygon collision-detection point-in-polygon
有一个点列表,我如何找到顺时针顺序?
例如:
point[0] = (5,0)
point[1] = (6,4)
point[2] = (4,5)
point[3] = (1,5)
point[4] = (1,0)
Run Code Online (Sandbox Code Playgroud)
会说它是逆时针(或逆时针,对某些人来说).
我如何"膨胀"多边形?也就是说,我想做类似的事情:
要求是新的(膨胀的)多边形的边/点都与旧的(原始)多边形处于相同的恒定距离(在示例图片上它们不是,因为那时它必须使用弧来填充顶点,但是让我们暂时忘掉它;)).
我正在寻找的数学术语实际上是向内/向外多边形的偏离.+1指向balint指出这一点.替代命名是多边形缓冲.
我的搜索结果:
以下是一些链接:
我正在寻找一种非常简单的算法来计算多边形交叉/裁剪.也就是说,给定的多边形P
,Q
我想找到的多边形T
被包含在P
在Q
,我希望T
是最大的所有可能的多边形中.
我不介意运行时间(我有一些非常小的多边形),我也可以得到一个近似的多边形交叉点(也就是说,一个点数较少的多边形,但它仍包含在多边形的交叉点中).
但对我来说,算法将是简单的(更便宜的测试)并且最好是短(更少的代码)对我来说非常重要.
编辑:请注意,我希望获得一个代表交叉点的多边形.对于两个多边形是否相交的问题,我不需要一个布尔答案.
我想检查一个点是否位于特定的多边形内.多边形是:
polygon= [ [-73.89632720118, 40.8515320489962],
[-73.8964878416508, 40.8512476593594],
[-73.8968799791431, 40.851375925454],
[-73.8967188588015, 40.851660158514],
[-73.89632720118, 40.8515320489962] ]
Run Code Online (Sandbox Code Playgroud)
我要检查的要点是:
1 = [40.8515320489962,-73.89632720118]
2 = [40.8512476593594,-73.8964878416508]
3 = [40.851375925454,-73.8968799791431]
4 = [40.851660158514,-73.8967188588015]
5 = [40.8515320489962,-73.89632720118]
Run Code Online (Sandbox Code Playgroud)
如何判断每个点是否在此多边形内?
此算法无效.我不知道为什么.
pt[lat,long]
function isPointInPoly(poly, pt){
for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i)
((poly[i][1] <= pt[1] && pt[1] < poly[j][1]) || (poly[j][1] <= pt[1] && pt[1] < poly[i].y))
&& (pt[0] < (poly[j][0] - poly[i][0]) * (pt[1] …
Run Code Online (Sandbox Code Playgroud) 我想画一个Free Hand Polygon on the Map in Google Map V2
.
Overlay
Map V1 可以执行此任务,但Google Map已从V2中删除该类.(根据此Google Map V2已删除重叠类).
在Map V2中,我们可以在Google Official Doc的帮助下以编程方式绘制多边形,但用户应该怎么做?我发现Map V2的答案不明确
我从简单的谷歌地图和绘制多边形开始以编程方式执行此操作并且它正常工作但现在我正在寻找用户可以绘制的方式?我不想根据多边形上的标记绘制.
// Instantiates a new Polygon object and adds points to define a rectangle
PolygonOptions rectOptions = new PolygonOptions()
.add(new LatLng(37.35, -122.0),
new LatLng(37.45, -122.0),
new LatLng(37.45, -122.2),
new LatLng(37.35, -122.2),
new LatLng(37.35, -122.0));
// Get back the mutable Polygon
Polygon polygon = myMap.addPolygon(rectOptions);
Run Code Online (Sandbox Code Playgroud)
我已就此主题进行了大量的研究和开发,但没有在Map V2中实现这样的完美方法.
一些问题
它不需要100%正确,它可以是边界矩形的中心.
如何获取/提取定义shapely
多边形的点?谢谢!
形状多边形的示例
from shapely.geometry import Polygon
# Create polygon from lists of points
x = [list of x vals]
y = [list of y vals]
polygon = Polygon(x,y)
Run Code Online (Sandbox Code Playgroud) 我需要找到一个点,它是一个不规则形状的多边形的视觉中心.通过视觉中心,我的意思是在视觉上看起来位于多边形的大区域的中心的点.应用程序是在多边形内部放置一个标签.
这是一个使用内部缓冲的解决方案:
如果要使用它,找到缓冲区的有效且快速的方法是什么?如果要使用任何其他方式,这是哪种方式?
真正坚韧的多边形的一个很好的例子是一个巨大的厚U(用Arial Black或Impact或一些这样的字体书写).
polygon ×10
geometry ×4
google-maps ×2
math ×2
2d ×1
algorithm ×1
android ×1
buffering ×1
css ×1
css-shapes ×1
css3 ×1
draw ×1
graphics ×1
javascript ×1
overlay ×1
performance ×1
point ×1
python ×1
shapely ×1