Gozintograph: Unterschied zwischen den Versionen
Die Seite wurde neu angelegt: „Ein Gozintograph (von engl. *goes into* = „geht hinein“) ist ein gerichteter Graph, der die Zerlegung eines Endprodukts in seine Einzelteile oder Komponenten beschreibt. Jede Kante stellt dabei eine „Gozinto“-Beziehung dar: Sie zeigt von einer Komponente (Teil) auf das Produkt, in das sie eingeht. Der Gozintograph ist ein zentrales Hilfsmittel in der Produktionsplanung und Stücklistenverwaltung. == Definition == Ein '''Gozintograph''' ist ein…“ |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
Ein Gozintograph (von engl. *goes into* = „geht hinein“) ist ein gerichteter Graph, der die Zerlegung eines Endprodukts in seine Einzelteile oder Komponenten beschreibt. | Ein '''Gozintograph''' (von engl. *goes into* = „geht hinein“) ist ein gerichteter Graph, der die Zerlegung eines Endprodukts in seine Einzelteile oder Komponenten beschreibt. | ||
Jede Kante stellt dabei eine „Gozinto“-Beziehung dar: Sie zeigt von einer Komponente (Teil) auf das Produkt, in das sie eingeht. Der Gozintograph ist ein zentrales Hilfsmittel in der Produktionsplanung und Stücklistenverwaltung. | Jede Kante stellt dabei eine „Gozinto“-Beziehung dar: Sie zeigt von einer Komponente (Teil) auf das Produkt, in das sie eingeht. Der Gozintograph ist ein zentrales Hilfsmittel in der Produktionsplanung und Stücklistenverwaltung. | ||
== Definition == | == Definition == | ||
Ein | Ein Gozintograph ist ein gerichteter, azyklischer Graph \( G = (V, E) \), wobei: | ||
* \( V \) die Menge der Knoten darstellt (Produkte oder Teile), | * \( V \) die Menge der Knoten darstellt (Produkte oder Teile), | ||
* \( E \subseteq V \times V \) die gerichteten Kanten darstellt, welche „geht-in“-Beziehungen symbolisieren. | * \( E \subseteq V \times V \) die gerichteten Kanten darstellt, welche „geht-in“-Beziehungen symbolisieren. | ||
| Zeile 25: | Zeile 25: | ||
<html> | <html> | ||
<div id="gozinto1" style="width:90vw; max-width:600px; height:60vw; max-height:500px; margin-top:20px;"></div> | <div id="gozinto1" style="width:90vw; max-width:600px; height:60vw; max-height:500px; margin-top:20px;"></div> | ||
<script | <script src="https://jsxgraph.org/distrib/jsxgraphcore.js"></script> | ||
<script | <script> | ||
var brd1 = JXG.JSXGraph.initBoard('gozinto1', { | |||
boundingbox: [-1, 8, 10, -1], | |||
axis: false, | |||
showCopyright: false, | |||
showNavigation: false | |||
}); | |||
// Hilfsfunktion zum Rechteck | |||
function box(x1,y1,x2,y2,color){ | |||
return brd1.create('polygon',[[x1,y1],[x2,y1],[x2,y2],[x1,y2]],{ | |||
fillColor:color,fillOpacity:0.8,vertices:{visible:false},borders:{strokeColor:'#333'} | |||
}); | }); | ||
} | |||
// Knoten | |||
var E1=box(0,6,1,7,'#e67e22'); | |||
var E2=box(2,6,3,7,'#e67e22'); | |||
var E3=box(4,6,5,7,'#e67e22'); | |||
var E4=box(6,6,7,7,'#e67e22'); | |||
var B1=box(1,3,2,4,'#3498db'); | |||
var B2=box(3,3,4,4,'#3498db'); | |||
var B3=box(5,3,6,4,'#3498db'); | |||
var B4=box(2,1,3,2,'#2ecc71'); | |||
var B5=box(4,1,5,2,'#2ecc71'); | |||
// Beschriftungen | |||
brd1.create('text',[0.4,7.2,'E1']); | |||
brd1.create('text',[2.4,7.2,'E2']); | |||
brd1.create('text',[4.4,7.2,'E3']); | |||
brd1.create('text',[6.4,7.2,'E4']); | |||
brd1.create('text',[1.4,4.2,'B1']); | |||
brd1.create('text',[3.4,4.2,'B2']); | |||
brd1.create('text',[5.4,4.2,'B3']); | |||
brd1.create('text',[2.4,2.2,'B4']); | |||
brd1.create('text',[4.4,2.2,'B5']); | |||
function arrow(fromX, fromY, toX, toY, label){ | |||
brd1.create('arrow',[[fromX,fromY],[toX,toY]],{strokeColor:'#555'}); | |||
brd1.create('text',[(fromX+toX)/2,(fromY+toY)/2+0.2,label],{fontSize:10}); | |||
} | |||
// Kanten | |||
arrow(0.5,6,1.5,4,'2'); | |||
arrow(2.5,6,1.5,4,'1'); | |||
arrow(2.5,6,3.5,4,'3'); | |||
arrow(4.5,6,3.5,4,'2'); | |||
arrow(4.5,6,5.5,4,'1'); | |||
arrow(6.5,6,5.5,4,'1'); | |||
arrow(1.5,3,2.5,2,'1'); | |||
arrow(3.5,3,2.5,2,'2'); | |||
arrow(3.5,3,4.5,2,'1'); | |||
arrow(5.5,3,4.5,2,'1'); | |||
</script> | </script> | ||
</html> | </html> | ||
| Zeile 82: | Zeile 89: | ||
<html> | <html> | ||
<div id="gozinto2" style="width:90vw; max-width:600px; height:60vw; max-height:500px; margin-top:20px;"></div> | <div id="gozinto2" style="width:90vw; max-width:600px; height:60vw; max-height:500px; margin-top:20px;"></div> | ||
<script | <script> | ||
var brd2 = JXG.JSXGraph.initBoard('gozinto2', { | |||
boundingbox: [-1, 8, 10, -1], | |||
axis: false, | |||
showCopyright: false, | |||
showNavigation: false | |||
}); | |||
function box2(x1,y1,x2,y2,color){ | |||
return brd2.create('polygon',[[x1,y1],[x2,y1],[x2,y2],[x1,y2]],{ | |||
fillColor:color,fillOpacity:0.8,vertices:{visible:false},borders:{strokeColor:'#333'} | |||
}); | }); | ||
} | |||
var M1=box2(0,6,1,7,'#e67e22'); // Mehl | |||
var W1=box2(2,6,3,7,'#e67e22'); // Wasser | |||
var H1=box2(4,6,5,7,'#e67e22'); // Hefe | |||
var T1=box2(1,3,2,4,'#3498db'); // Teig | |||
var T2=box2(5,3,6,4,'#3498db'); // Soße | |||
var T3=box2(3,1,4,2,'#2ecc71'); // Pizza | |||
brd2.create('text',[0.4,7.2,'Mehl']); | |||
brd2.create('text',[2.4,7.2,'Wasser']); | |||
brd2.create('text',[4.4,7.2,'Hefe']); | |||
brd2.create('text',[1.4,4.2,'Teig']); | |||
brd2.create('text',[5.4,4.2,'Soße']); | |||
brd2.create('text',[3.4,2.2,'Pizza']); | |||
function arrow2(fromX, fromY, toX, toY, label){ | |||
brd2.create('arrow',[[fromX,fromY],[toX,toY]],{strokeColor:'#555'}); | |||
brd2.create('text',[(fromX+toX)/2,(fromY+toY)/2+0.2,label],{fontSize:10}); | |||
} | |||
// Zutaten -> Teig | |||
arrow2(0.5,6,1.5,4,'2'); | |||
arrow2(2.5,6,1.5,4,'1'); | |||
arrow2(4.5,6,1.5,4,'0.5'); | |||
// Teig + Soße -> Pizza | |||
arrow2(1.5,3,3.5,2,'1'); | |||
arrow2(5.5,3,3.5,2,'1'); | |||
</script> | </script> | ||
</html> | </html> | ||