Zum Inhalt springen

Datei:Closest pair of points.svg

aus AufEinWort, der freien Forschung
    Originaldatei (SVG-Datei, Basisgröße: 256 × 256 Pixel, Dateigröße: 1 KB)

    Diese Datei stammt aus Wikimedia Commons und kann von anderen Projekten verwendet werden. Die Beschreibung von deren Dateibeschreibungsseite wird unten angezeigt.

    Beschreibung

    Beschreibung
    English: Closest pair of points shown in red.
    Datum
    Quelle Eigenes Werk
    Urheber Qef
    Andere Versionen Bitmap version: file:ClosestPair.png

    Lizenz

    Creative Commons CC-Zero Diese Datei wird unter der Creative-Commons-Lizenz CC0 1.0 Verzicht auf das Copyright zur Verfügung gestellt.
    Die Person, die das Werk mit diesem Dokument verbunden hat, übergibt dieses weltweit der Gemeinfreiheit, indem sie alle Urheberrechte und damit verbundenen weiteren Rechte – im Rahmen der jeweils geltenden gesetzlichen Bestimmungen – aufgibt. Das Werk kann – selbst für kommerzielle Zwecke – kopiert, modifiziert und weiterverteilt werden, ohne hierfür um Erlaubnis bitten zu müssen.

    Source code

    The SVG was generated by running the Lua program given below. It deliberately fails if the closest points would be overlapping in the image, because that would be confusing.

    local WD, HT, NUM_POINTS = 256, 256, 16
    local COLOR = { normal = '#000', closest = '#f00' }
    local RADIUS = 5
    
    math.randomseed(os.time())
    local P = {}
    for _ = 1, NUM_POINTS do
        P[#P+1] = { x = RADIUS + (WD - 2*RADIUS) * math.random(),
                    y = RADIUS + (HT - 2*RADIUS) * math.random() }
    end
    
    -- Find closest pair, using naive algorithm.
    local closest_a, closest_b
    local min_dist
    for i, p in ipairs(P) do
        for j, q in ipairs(P) do
            if i ~= j then
                local dist = math.sqrt((p.x - q.x)^2 + (p.y - q.y)^2)
                if not min_dist or dist < min_dist then
                    min_dist = dist
                    closest_a, closest_b = i, j
                end
            end
        end
    end
    
    if min_dist < RADIUS then
        error("points on top of each other, run me again")
    end
    
    io.write('<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n',
             '<svg svg="http://www.w3.org/2000/svg" version="1.0"',
             ' width="', WD, '" height="', HT, '">\n')
    for i, p in ipairs(P) do
        local color = COLOR.normal
        if i == closest_a or i == closest_b then color = COLOR.closest end
        io.write(' <circle cx="', RADIUS + p.x, '" cy="', RADIUS + p.y,
                 '" r="', RADIUS, '" style="fill:', color, '"/>\n')
    end
    io.write('</svg>\n')
    

    Kurzbeschreibungen

    Ergänze eine einzeilige Erklärung, was diese Datei darstellt.

    In dieser Datei abgebildete Objekte

    Motiv

    image/svg+xml

    120742ed70c3028e512f55d9b9e19453b4a7df2f

    1.365 Byte

    256 Pixel

    256 Pixel

    Dateiversionen

    Klicke auf einen Zeitpunkt, um diese Version zu laden.

    Version vomVorschaubildMaßeBenutzerKommentar
    aktuell05:03, 22. Jun. 2009Vorschaubild der Version vom 05:03, 22. Jun. 2009256 × 256 (1 KB)wikimediacommons>Qef{{Information |Description={{en|1=Closest pair of points shown in red.}} |Source=Own work by uploader |Author=Qef |Date=2009-06-22 |Permission= |other_versions=Bitmap version: file:ClosestPair.png }} <!--{{ImageUpload|full}}--> [[Catego

    Die folgende Seite verwendet diese Datei: