File:Gabriel graph.svg

Summary

Description
English: The Gabriel graph of 100 random points
Date
Source Own work
Author David Eppstein
SVG development
InfoField
Source code
InfoField

Python code

// This image was created with the following Python source code and then recolored and converted to SVG in Adobe Illustrator.

from pyx import canvas,path,color
from math import *
from random import seed,random
seed(12345)
 
npoints = 100
radius = 0.05
exclusion = 0.2     # prevent points from being too close
scale = 5

def dist2(p,q):
    return (p[0]-q[0])**2 + (p[1]-q[1])**2
 
points = []
while len(points) < 100:
    p = (random()*scale,random()*scale)
    if points:
        nn = min(dist2(p,q)**0.5 for q in points)
        if nn < exclusion:
            continue
    points.append(p)

def neighbors(p,q):
    c = ((p[0]+q[0])/2,(p[1]+q[1])/2)
    dd = dist2(p,c)
    for r in points:
        if r != p and r != q and dist2(r,c) < dd:
            return False
    return True
 
c = canvas.canvas()
 
def edge(p,q):
    c.stroke(path.line(p[0],p[1],q[0],q[1]),
             [color.rgb.black])
 
def point(p):
    c.fill(path.circle(p[0],p[1],radius),[color.rgb.red])
 
for p in points:
    for q in points:
        if p < q and neighbors(p,q):
            edge(p,q)
 
for p in points:
    point(p)
 
c.writePDFfile("Gabriel_graph")

Licensing

Public domain I, the copyright holder of this work, release this work into the public domain. This applies worldwide.
In some countries this may not be legally possible; if so:
I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.
Category:Self-published work#Gabriel%20graph.svgCategory:PD-self#Gabriel%20graph.svg Category:Computational geometry Category:Files by User:David Eppstein from en.wikipedia Category:Images with Python source code Category:Graph (discrete mathematics)
Category:Computational geometry Category:Files by User:David Eppstein from en.wikipedia Category:Graph (discrete mathematics) Category:Images with Python source code Category:PD-self Category:Self-published work Category:Valid SVG created with Python code