用于渲染填充路径的矢量图形中使用的标准算法是什么?
我不仅对渲染笔画的过程感兴趣,我还想知道如何填充形状 - 如何确定给定的点是在路径的内部还是外部(我相信甚至指定内部和外部的规则)意思是不是一件简单的事情).
我试图将已知的明确定义的形状(例如,盒子,圆柱体;具有可配置的位置,旋转和尺寸)拟合到一组点,这些点具有通过采样3D网格生成的法线。我当前的方法是为每个形状定义自定义拟合函数,并将其传递给第三方优化函数:
fitness = get_fitness(shape_parameters, points)
best_parameters = external.optimise(get_fitness, initial_parameters, points)
Run Code Online (Sandbox Code Playgroud)
(作为参考,我目前正在使用Python 3并scipy.optimize.minimize带有边界,但是语言无关紧要)。
矩形的适应度函数看起来像
def get_fitness(parameters, points):
side_fitnesses = []
for side in [top, right, bottom, left, back, front]:
dists = get_side_distances(parameters, points, side)
ndevs = get_side_normal_deviations(parameters, points, side)
side_fitnesses.append(combine_dists_and_ndevs(dists, ndevs))
fitnesses = choose_best_side_for_each_point(side_fitnesses)
return mean(fitnesses)
Run Code Online (Sandbox Code Playgroud)
但是,这意味着我必须确定异常值(有/没有缓存),并且一次只能拟合一个形状。
例如(在2D中),对于这些点(具有法线),我想要以下结果:
请注意,返回了多个形状,并且忽略了异常值。通常,输入数据中可以有许多,一种或零种形状。后处理可以删除无效(例如,太小)的结果。
注意:我真正的问题是3D。我具有真实世界对象的3D网格表示的片段,这意味着我除了上面的示例中的点/法线(例如面部区域和连接性)外,还具有更多信息。
进一步阅读:
PS:我不确定StackOverflow是否是此问题的最佳StackExchange网站
我正在编写一个简单的应用程序,可以向您显示周围的朋友,但不是在普通地图中,而是在像UI这样的真正循环雷达上:
(http://i.imgur.com/9Epw0Xh.png)
像这样,我有每个用户的纬度,经度,当然我自己是中心.
我还测量每个用户定位它们的距离,以便我知道的数据是它们的纬度,经度和距离.
由于数学原因,让我们说雷达是100像素的半径,我可以使用左或右定位将它们与我的距离保持距离,但就顶部或底部而言,它会变得更加棘手,因为我试图转换它们的纬度 - 我的纬度为百分比结果然后将它们放在雷达上...但我认为极地到笛卡尔坐标可能有更好的方法,但我真的有点无能为力.
是否有最好的方法与这些类型的接口或周围实现的任何东西?