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 '''Gozintograph''' ist ein gerichteter, azyklischer Graph \( G = (V, E) \), wobei:
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 type="text/javascript" src="https://jsxgraph.org/distrib/jsxgraphcore.js"></script>
<script src="https://jsxgraph.org/distrib/jsxgraphcore.js"></script>
<script type="text/javascript">
<script>
    var brd1 = JXG.JSXGraph.initBoard('gozinto1', {
var brd1 = JXG.JSXGraph.initBoard('gozinto1', {
        boundingbox: [-1, 8, 10, -1],
    boundingbox: [-1, 8, 10, -1],
        axis: false,
    axis: false,
        showCopyright: false,
    showCopyright: false,
         showNavigation: 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
// Knoten
    var E1 = brd1.create('rect', [0, 6, 1, 7], {fillColor:'#e67e22', strokeColor:'#d35400'});
var E1=box(0,6,1,7,'#e67e22');
    var E2 = brd1.create('rect', [2, 6, 3, 7], {fillColor:'#e67e22', strokeColor:'#d35400'});
var E2=box(2,6,3,7,'#e67e22');
    var E3 = brd1.create('rect', [4, 6, 5, 7], {fillColor:'#e67e22', strokeColor:'#d35400'});
var E3=box(4,6,5,7,'#e67e22');
    var E4 = brd1.create('rect', [6, 6, 7, 7], {fillColor:'#e67e22', strokeColor:'#d35400'});
var E4=box(6,6,7,7,'#e67e22');
    var B1 = brd1.create('rect', [1, 3, 2, 4], {fillColor:'#3498db', strokeColor:'#2980b9'});
var B1=box(1,3,2,4,'#3498db');
    var B2 = brd1.create('rect', [3, 3, 4, 4], {fillColor:'#3498db', strokeColor:'#2980b9'});
var B2=box(3,3,4,4,'#3498db');
    var B3 = brd1.create('rect', [5, 3, 6, 4], {fillColor:'#3498db', strokeColor:'#2980b9'});
var B3=box(5,3,6,4,'#3498db');
    var B4 = brd1.create('rect', [2, 1, 3, 2], {fillColor:'#2ecc71', strokeColor:'#27ae60'});
var B4=box(2,1,3,2,'#2ecc71');
    var B5 = brd1.create('rect', [4, 1, 5, 2], {fillColor:'#2ecc71', strokeColor:'#27ae60'});
var B5=box(4,1,5,2,'#2ecc71');


    // Beschriftungen
// Beschriftungen
    brd1.create('text', [0.4, 7.2, 'E1']);
brd1.create('text',[0.4,7.2,'E1']);
    brd1.create('text', [2.4, 7.2, 'E2']);
brd1.create('text',[2.4,7.2,'E2']);
    brd1.create('text', [4.4, 7.2, 'E3']);
brd1.create('text',[4.4,7.2,'E3']);
    brd1.create('text', [6.4, 7.2, 'E4']);
brd1.create('text',[6.4,7.2,'E4']);
    brd1.create('text', [1.4, 4.2, 'B1']);
brd1.create('text',[1.4,4.2,'B1']);
    brd1.create('text', [3.4, 4.2, 'B2']);
brd1.create('text',[3.4,4.2,'B2']);
    brd1.create('text', [5.4, 4.2, 'B3']);
brd1.create('text',[5.4,4.2,'B3']);
    brd1.create('text', [2.4, 2.2, 'B4']);
brd1.create('text',[2.4,2.2,'B4']);
    brd1.create('text', [4.4, 2.2, 'B5']);
brd1.create('text',[4.4,2.2,'B5']);


    // Kanten mit Mengenangaben
function arrow(fromX, fromY, toX, toY, label){
    function arrow(fromX, fromY, toX, toY, label) {
    brd1.create('arrow',[[fromX,fromY],[toX,toY]],{strokeColor:'#555'});
        var l = brd1.create('arrow', [[fromX, fromY], [toX, toY]], {strokeColor:'#555'});
    brd1.create('text',[(fromX+toX)/2,(fromY+toY)/2+0.2,label],{fontSize:10});
        brd1.create('text', [(fromX+toX)/2, (fromY+toY)/2 + 0.2, label], {fontSize:10});
}
    }


    arrow(0.5,6,1.5,4,'2');
// Kanten
    arrow(2.5,6,1.5,4,'1');
arrow(0.5,6,1.5,4,'2');
    arrow(2.5,6,3.5,4,'3');
arrow(2.5,6,1.5,4,'1');
    arrow(4.5,6,3.5,4,'2');
arrow(2.5,6,3.5,4,'3');
    arrow(4.5,6,5.5,4,'1');
arrow(4.5,6,3.5,4,'2');
    arrow(6.5,6,5.5,4,'1');
arrow(4.5,6,5.5,4,'1');
    arrow(1.5,3,2.5,2,'1');
arrow(6.5,6,5.5,4,'1');
    arrow(3.5,3,2.5,2,'2');
arrow(1.5,3,2.5,2,'1');
    arrow(3.5,3,4.5,2,'1');
arrow(3.5,3,2.5,2,'2');
    arrow(5.5,3,4.5,2,'1');
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 type="text/javascript">
<script>
    var brd2 = JXG.JSXGraph.initBoard('gozinto2', {
var brd2 = JXG.JSXGraph.initBoard('gozinto2', {
        boundingbox: [-1, 8, 10, -1],
    boundingbox: [-1, 8, 10, -1],
        axis: false,
    axis: false,
        showCopyright: false,
    showCopyright: false,
         showNavigation: 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 = brd2.create('rect', [0, 6, 1, 7], {fillColor:'#e67e22', strokeColor:'#d35400'}); // Mehl
var M1=box2(0,6,1,7,'#e67e22'); // Mehl
    var W1 = brd2.create('rect', [2, 6, 3, 7], {fillColor:'#e67e22', strokeColor:'#d35400'}); // Wasser
var W1=box2(2,6,3,7,'#e67e22'); // Wasser
    var H1 = brd2.create('rect', [4, 6, 5, 7], {fillColor:'#e67e22', strokeColor:'#d35400'}); // Hefe
var H1=box2(4,6,5,7,'#e67e22'); // Hefe
    var T1 = brd2.create('rect', [1, 3, 2, 4], {fillColor:'#3498db', strokeColor:'#2980b9'}); // Teig
var T1=box2(1,3,2,4,'#3498db'); // Teig
    var T2 = brd2.create('rect', [5, 3, 6, 4], {fillColor:'#3498db', strokeColor:'#2980b9'}); // Soße
var T2=box2(5,3,6,4,'#3498db'); // Soße
    var T3 = brd2.create('rect', [3, 1, 4, 2], {fillColor:'#2ecc71', strokeColor:'#27ae60'}); // Pizza
var T3=box2(3,1,4,2,'#2ecc71'); // Pizza


    brd2.create('text', [0.4, 7.2, 'Mehl']);
brd2.create('text',[0.4,7.2,'Mehl']);
    brd2.create('text', [2.4, 7.2, 'Wasser']);
brd2.create('text',[2.4,7.2,'Wasser']);
    brd2.create('text', [4.4, 7.2, 'Hefe']);
brd2.create('text',[4.4,7.2,'Hefe']);
    brd2.create('text', [1.4, 4.2, 'Teig']);
brd2.create('text',[1.4,4.2,'Teig']);
    brd2.create('text', [5.4, 4.2, 'Soße']);
brd2.create('text',[5.4,4.2,'Soße']);
    brd2.create('text', [3.4, 2.2, 'Pizza']);
brd2.create('text',[3.4,2.2,'Pizza']);


    function arrow2(fromX, fromY, toX, toY, label) {
function arrow2(fromX, fromY, toX, toY, label){
        var l = brd2.create('arrow', [[fromX, fromY], [toX, toY]], {strokeColor:'#555'});
    brd2.create('arrow',[[fromX,fromY],[toX,toY]],{strokeColor:'#555'});
        brd2.create('text', [(fromX+toX)/2, (fromY+toY)/2 + 0.2, label], {fontSize:10});
    brd2.create('text',[(fromX+toX)/2,(fromY+toY)/2+0.2,label],{fontSize:10});
    }
}


    // Zutaten -> Teig
// Zutaten -> Teig
    arrow2(0.5,6,1.5,4,'2');
arrow2(0.5,6,1.5,4,'2');
    arrow2(2.5,6,1.5,4,'1');
arrow2(2.5,6,1.5,4,'1');
    arrow2(4.5,6,1.5,4,'0.5');
arrow2(4.5,6,1.5,4,'0.5');
    // Teig + Soße -> Pizza
// Teig + Soße -> Pizza
    arrow2(1.5,3,3.5,2,'1');
arrow2(1.5,3,3.5,2,'1');
    arrow2(5.5,3,3.5,2,'1');
arrow2(5.5,3,3.5,2,'1');
</script>
</script>
</html>
</html>