File:Symmetrical 5-set Venn diagram.svg
Aus Wikimedia Commons, dem freien Medienarchiv
Zur Navigation springen
Zur Suche springen
![File:Symmetrical 5-set Venn diagram.svg](https://upload.wikimedia.org/wikipedia/commons/thumb/1/10/Symmetrical_5-set_Venn_diagram.svg/512px-Symmetrical_5-set_Venn_diagram.svg.png?20190416001745)
Größe der PNG-Vorschau dieser SVG-Datei: 512 × 512 Pixel. Weitere Auflösungen: 240 × 240 Pixel | 480 × 480 Pixel | 768 × 768 Pixel | 1.024 × 1.024 Pixel | 2.048 × 2.048 Pixel.
Originaldatei (SVG-Datei, Basisgröße: 512 × 512 Pixel, Dateigröße: 4 KB)
Dateiinformationen
Strukturierte Daten
Bildtexte
Kurzbeschreibungen
Ergänze eine einzeilige Erklärung, was diese Datei darstellt.
Beschreibung
[Bearbeiten]BeschreibungSymmetrical 5-set Venn diagram.svg |
English: Radially-symmetrical five-set Venn diagram devised by Branko Grünbaum |
Quelle | Eigenes Werk |
Urheber | Cmglee |
Python script to optimise for maximum area of the smallest regions
[Bearbeiten]#!/usr/bin/env python
import math
class Ellipse:
def __init__(self, x,y, rx,ry):
self.x = x
self.y = y
self.rx = rx
self.ry = ry
class Matrix:
def __init__(self, ellipse):
self.half_width = max(int(math.ceil(ellipse.rx + ellipse.x) + 1),
int(math.ceil(ellipse.ry + ellipse.y) + 1))
self.half_height = self.half_width
self.width = self.half_width * 2
self.height = self.half_height * 2
self.cells = [[0 for x in range(self.width)] for y in range(self.height)]
def display(self):
codes = '0123456789abcdefghijklmnopqrstuvwxyz'
print('\n'.join([''.join([codes[self.cells[y][x]] for x in range(self.width)])
for y in range(self.height)]))
def draw_ellipse(self, i_bit, ellipse, angle):
mask_bit = (1 << i_bit)
sin_angle = math.sin(math.radians(angle))
cos_angle = math.cos(math.radians(angle))
for matrix_y in range(self.height):
for matrix_x in range(self.width):
cell_x_unrotated = matrix_x - self.half_width
cell_y_unrotated = matrix_y - self.half_height
cell_x = sin_angle * cell_y_unrotated + cos_angle * cell_x_unrotated
cell_y = cos_angle * cell_y_unrotated - sin_angle * cell_x_unrotated
cell_dx = float(cell_x - ellipse.x) / ellipse.rx
cell_dy = float(cell_y - ellipse.y) / ellipse.ry
# print('%3d%3d | %4d%4d | %6.2f%6.2f | %6.2f %d' %
# (matrix_x,matrix_y, cell_x,cell_y, cell_dx,cell_dy,
# cell_dx * cell_dx + cell_dy * cell_dy,cell_dx * cell_dx + cell_dy * cell_dy > 1))
if (cell_dx * cell_dx + cell_dy * cell_dy <= 1): self.cells[matrix_y][matrix_x] |= mask_bit
def draw_ellipses(self, ellipse):
for i_ellipse in range(5): self.draw_ellipse(i_ellipse, ellipse, i_ellipse * 72)
def count_regions(self):
counts = [0 for code in range(1 << 5)]
for matrix_y in range(self.height):
for matrix_x in range(self.width):
counts[self.cells[matrix_y][matrix_x]] += 1
area_all = self.width * self.height
area_min = area_all
area_non0 = area_all - counts[0]
for i_count in range(len(counts)):
if (area_min > counts[i_count]): area_min = counts[i_count]
if (True):
# if (area_min > 0):
bar = ''.join(['%-5d+----' % i for i in range(99)]).replace(' ','-')[1:]
ppm = 1e6 * area_min / area_non0
print('x:%2d y:%2d rx:%2d ry:%2d ppm:%4.0f %s' %
(ellipse.x,ellipse.y, ellipse.rx,ellipse.ry, ppm, bar[:int(ppm / 100 + 0.5)]))
"""
ellipse = Ellipse(9,14, 40,80)
ellipse = Ellipse(7,16, 42,78)
ellipse = Ellipse(5,12, 46,70)
ellipse = Ellipse(5,14, 37,64)
ellipse = Ellipse(5,12, 40,65)
ellipse = Ellipse(5,12, 41,66)
ellipse = Ellipse(10,24, 82,132)
matrix = Matrix(ellipse)
matrix.draw_ellipses(ellipse)
matrix.display()
matrix.count_regions()
"""
model_x = 20; half_range_x = 1; step_x = 1
model_y = 46; half_range_y = 1; step_y = 1
model_rx = 166; half_range_rx = 1; step_rx = 1
model_ry = 264; half_range_ry = 1; step_ry = 1
for x in range(-half_range_x , half_range_x + 1, step_x ):
for y in range(-half_range_y , half_range_y + 1, step_y ):
for rx in range(-half_range_rx, half_range_rx + 1, step_rx):
for ry in range(-half_range_ry, half_range_ry + 1, step_ry):
ellipse = Ellipse(model_x + x,model_y + y, model_rx + rx,model_ry + ry)
matrix = Matrix(ellipse)
matrix.draw_ellipses(ellipse)
matrix.count_regions()
# """
Lizenz
[Bearbeiten]Ich, der Urheber dieses Werkes, veröffentliche es unter der folgenden Lizenz:
![w:de:Creative Commons](https://upload.wikimedia.org/wikipedia/commons/thumb/7/79/CC_some_rights_reserved.svg/90px-CC_some_rights_reserved.svg.png)
![Namensnennung](https://upload.wikimedia.org/wikipedia/commons/thumb/1/11/Cc-by_new_white.svg/24px-Cc-by_new_white.svg.png)
![Weitergabe unter gleichen Bedingungen](https://upload.wikimedia.org/wikipedia/commons/thumb/d/df/Cc-sa_white.svg/24px-Cc-sa_white.svg.png)
Diese Datei ist unter der Creative-Commons-Lizenz „Namensnennung – Weitergabe unter gleichen Bedingungen 3.0 nicht portiert“ lizenziert.
- Dieses Werk darf von dir
- verbreitet werden – vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden
- neu zusammengestellt werden – abgewandelt und bearbeitet werden
- Zu den folgenden Bedingungen:
- Namensnennung – Du musst angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade dich oder deine Nutzung besonders.
- Weitergabe unter gleichen Bedingungen – Wenn du das Material wiedermischst, transformierst oder darauf aufbaust, musst du deine Beiträge unter der gleichen oder einer kompatiblen Lizenz wie das Original verbreiten.
Dateiversionen
Klicke auf einen Zeitpunkt, um diese Version zu laden.
Version vom | Vorschaubild | Maße | Benutzer | Kommentar | |
---|---|---|---|---|---|
aktuell | 00:17, 16. Apr. 2019 | ![]() | 512 × 512 (4 KB) | Cmglee (Diskussion | Beiträge) | Improve optimisation and rendering. |
12:47, 14. Okt. 2016 | ![]() | 512 × 512 (4 KB) | Cmglee (Diskussion | Beiträge) | Optimise for maximum area of the smallest regions. | |
00:35, 11. Apr. 2011 | ![]() | 746 × 742 (3 KB) | AnonMoos (Diskussion | Beiträge) | adjusting margins | |
22:09, 11. Mär. 2011 | ![]() | 512 × 512 (3 KB) | Cmglee (Diskussion | Beiträge) | Use defs to make opaque lines. | |
21:49, 11. Mär. 2011 | ![]() | 512 × 512 (3 KB) | Cmglee (Diskussion | Beiträge) | Explicitly specify font size. | |
21:42, 11. Mär. 2011 | ![]() | 512 × 512 (1 KB) | Cmglee (Diskussion | Beiträge) | Make transparent fill attribute of ellipses. | |
21:40, 11. Mär. 2011 | ![]() | 512 × 512 (1 KB) | Cmglee (Diskussion | Beiträge) | Add opaque lines. | |
21:37, 11. Mär. 2011 | ![]() | 512 × 512 (1.017 Bytes) | Cmglee (Diskussion | Beiträge) | Use fill with hex codes and opacity instead of fill with rgba codes. | |
21:34, 11. Mär. 2011 | ![]() | 512 × 512 (1.010 Bytes) | Cmglee (Diskussion | Beiträge) | Temporarily remove text to check if ellipses work. | |
21:33, 11. Mär. 2011 | ![]() | 512 × 512 (3 KB) | Cmglee (Diskussion | Beiträge) | Convert CSS styles to attributes. |
Du kannst diese Datei nicht überschreiben.
Dateiverwendung
Die folgenden 2 Seiten verwenden diese Datei:
Globale Dateiverwendung
Die nachfolgenden anderen Wikis verwenden diese Datei:
- Verwendung auf bn.wikipedia.org
- Verwendung auf de.wikipedia.org
- Verwendung auf en.wikipedia.org
- Verwendung auf en.wikiversity.org
- Verwendung auf fi.wikipedia.org
- Verwendung auf fr.wikipedia.org
- Verwendung auf id.wikipedia.org
- Verwendung auf ja.wikipedia.org
- Verwendung auf pt.wikipedia.org
- Verwendung auf uk.wikipedia.org
Metadaten
Diese Datei enthält weitere Informationen, die in der Regel von der Digitalkamera oder dem verwendeten Scanner stammen. Durch nachträgliche Bearbeitung der Originaldatei können einige Details verändert worden sein.
Kurztitel | Symmetrical 5-set Venn diagram |
---|---|
Bildtitel | Radially symmetrical five-set Venn diagram originally devised by Branko Gruenbaum and optimised for maximum area of the smallest regions and rendered by CMG Lee. |
Breite | 100% |
Höhe | 100% |