标签: computational-geometry

指向远离点的线段距离

我正在寻找一个算法(或算法的名称),它将在一个线段上找到一个点,如果存在这样一个点,那就是距离不在线段上的另一个点一定距离.

即,存在三个点A,B,C ; 和可能的第四d.其中AB构成线段,而点C是线段AB的某处OFF的另一点.找到点D,如果存在这样的点,则出现在距离点C给定距离的线段AB上.distance

algorithm math computational-geometry

3
推荐指数
2
解决办法
1637
查看次数

在多边形的线上选择一个随机点

我正在使用Java Polygon对象,它存储一组点,这些点定义构成形状的线.

我如何选择其中一条线上的随机点?Polygon类中是否有任何方法可以使这更容易?

为了澄清,我想从多边形边缘的任何位置选择一个随机点,而不是从定义顶点的集合中选择一个随机点.

java geometry awt polygon computational-geometry

3
推荐指数
1
解决办法
1408
查看次数

从用于计算三角形和圆周的swingworker重新绘制applet

我试图复制这里发现的小程序作为练习的一部分.小程序正在使用Fortune的算法来生成两者; Voronoi图和Delaunay三角剖分.我只对在平面中生成Delaunay三角剖分感兴趣,因此,将使用增量算法,即一次添加1个点.我打算在添加采样点时显示在每个阶段生成的三角形.

我正在使用SwingWorker类来创建包含算法的Triangulate类的实例.我在for循环中调用triangulate方法,当单击GUI上的开始按钮时,它会遍历一组采样点.

这是代码:

JButton startButton = new JButton("Start");
        startButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                SwingWorker<List<Triangle>, Triangle> worker = new SwingWorker<List<Triangle>, Triangle>() {
                    @Override
                    protected List<Triangle> doInBackground() throws Exception {
                        Triangulate dt = new Triangulate(drawingPanel.pointsList());
                        dt.preTriangulate(); //Set-up a bounding triangle and obtain a random permutation of the points
                        List<PlanarPoint> pointsList = dt.pointsList();
                        for (int i = 0; i < pointsList.size(); i++) {
                            PlanarPoint sample = pointsList.get(i);
                            dt.triangulate(sample); 
                            List<Triangle> list = dt.trianglesList(); //Obtaining the list of triangles …
Run Code Online (Sandbox Code Playgroud)

java graphics swing swingworker computational-geometry

3
推荐指数
1
解决办法
553
查看次数

从Delaunay三角测量计算Voronoi区域的大小?

我想计算2D中一组Voronoi区域的面积的平均值和标准偏差(如果区域延伸到无穷大,我只是将其剪切到单位正方形).

但是,如果可能的话,我想在不明确计算Voronoi区域的情况下从Delaunay Triangulation进行计算?这甚至是可能的,还是明确地计算Voronoi图更好?

algorithm voronoi computational-geometry

3
推荐指数
1
解决办法
1823
查看次数

获得2D点集的周长

我在2D中有一组点(x和y的坐标),现在我需要丢弃对我没有意义的所有点,我的意思是我只对这个点的区域感兴趣跟踪.

总之,这个

在此输入图像描述

它应该产生这个

在此输入图像描述

问题:在这一点上,哪种算法可以做这种过滤?

algorithm convex-hull computational-geometry

3
推荐指数
1
解决办法
2695
查看次数

如何计算垂直线的坐标?

线(x1,y1),(x2,y2)和(x3,y3),(x4,y4)是垂直的.我有点(x1,y1),(x2,y2),(x3,y3)的坐标和线(x3,y3),(x4,y4)的像素长度.我需要找到点(x4,y4)的坐标.请给我一个伪代码来计算(x4,y4).谢谢你提前.

图片

解决了.多亏了数学家1975

x1 = 200  
y1 = 400  
x2 = 700  
y2 = 200  
dist = 20  

x3 = (x1 + x2) / 2  
y3 = (y1 + y2) / 2  

a = y1 - y2  
b = x2 - x1  

norm = sqrt(a*a + b*b)  
a = a / norm  
b = b / norm  

x4 = x3 + a * dist  
y4 = y3 + b * dist
Run Code Online (Sandbox Code Playgroud)

geometry 2d computational-geometry

3
推荐指数
1
解决办法
866
查看次数

Python PIL中的重叠多边形

我不想用绘制的最后一个多边形的值覆盖多个多边形的重叠区域,而是绘制这些多边形的平均值。这在Python PIL中可能吗?

示例中的重叠像素的值应为1.5。

在完整的工作程序中,我必须在非常大的网格上绘制约100000个多边形(可能相交或不相交),这就是我使用PIL而不是Numpy的原因。

from PIL import Image, ImageDraw
import numpy as np
import matplotlib.pyplot as plt

img = Image.new('F', (50, 50), 0)

ImageDraw.Draw(img).polygon([(20, 20), (20, 40), (40, 30), (30, 20)],
                            fill=1., outline=None)
ImageDraw.Draw(img).polygon([(10, 5), (10, 25), (25, 25), (25, 10)],
                            fill=2., outline=None)

myimg = np.ma.masked_equal(np.array(img), 0.)
plt.imshow(myimg, interpolation="None")
plt.colorbar()
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

python numpy polygon computational-geometry python-imaging-library

3
推荐指数
1
解决办法
1754
查看次数

网格简化:边缘折叠条件

我试图通过进行一系列边缘折叠来实现网格简化算法.目前,我正在浏览每个三角形,然后折叠最短的边缘,算法是稳定的(不会超出界限).但超越一点,它开始创造破碎(洞)的文物.确定边缘是否可折叠的正确方法是什么,这样才不会导致非流形伪影(或网格)?

注意:我使用半边数据结构.另外,我不想使用任何外部库,如OpenMeshCGAL.我有理由不使用它们.

c++ algorithm mesh computational-geometry

3
推荐指数
1
解决办法
6314
查看次数

如何使用JavaScript和此坐标格式生成多维数据集?

鉴于此代码:

{
( 256 64 16 ) ( 256 64 0 ) ( 256 0 16 ) mmetal1_2 0 0 0 1 1
( 0 0 0 ) ( 0 64 0 ) ( 0 0 16 ) mmetal1_2 0 0 0 1 1
( 64 256 16 ) ( 0 256 16 ) ( 64 256 0 ) mmetal1_2 0 0 0 1 1
( 0 0 0 ) ( 0 0 16 ) ( 64 0 0 ) …
Run Code Online (Sandbox Code Playgroud)

javascript computational-geometry

3
推荐指数
1
解决办法
266
查看次数

调整百分比的矩形,同时保持其纵横比

我想将矩形区域的大小调整为50%Rect1 w1 x h1,我不想将宽度或高度直接调整为一半,因为这给了我25%的面积,我需要的是找到一个等效的矩形,纵横比,面积等于原件的%50.因此我需要找到矩形Rect2的h2 x w2.

我有Rect1:w1,h1,a1我还有Rect2:a2

我需要w2和h2(保持Rect1的宽高比)

图片

math geometry computational-geometry

3
推荐指数
1
解决办法
1696
查看次数