Gozintograph: Unterschied zwischen den Versionen
| Zeile 25: | Zeile 25: | ||
<html> | <html> | ||
<div id=" | <div id="gozinto_neu" style="width:95vw; max-width:1000px; height:70vw; max-height:600px; margin-top:20px;"></div> | ||
<script src="https://jsxgraph.org/distrib/jsxgraphcore.js"></script> | <script src="https://jsxgraph.org/distrib/jsxgraphcore.js"></script> | ||
<script> | <script> | ||
var | var brd = JXG.JSXGraph.initBoard('gozinto_neu', { | ||
boundingbox: [-1, | boundingbox: [-1, 9, 13, -1], | ||
axis: false, | axis: false, | ||
showNavigation: false, | showNavigation: false, | ||
| Zeile 35: | Zeile 35: | ||
}); | }); | ||
// Rechteck mit | // Rechteck mit schwarzer Schrift | ||
function box(x1,y1,x2,y2,text){ | function box(x1,y1,x2,y2,text){ | ||
var poly = | var poly = brd.create('polygon',[[x1,y1],[x2,y1],[x2,y2],[x1,y2]],{ | ||
fillColor:'#3498db',fillOpacity:0.8,vertices:{visible:false}, | fillColor:'#3498db',fillOpacity:0.8,vertices:{visible:false}, | ||
borders:{strokeColor:'#1f4e78',strokeWidth:2} | borders:{strokeColor:'#1f4e78',strokeWidth:2} | ||
}); | }); | ||
brd.create('text',[(x1+x2)/2,(y1+y2)/2,text], | |||
{anchorX:'middle',anchorY:'middle',strokeColor:' | {anchorX:'middle',anchorY:'middle',strokeColor:'black',fontSize:14}); | ||
return poly; | return poly; | ||
} | } | ||
// | // Rechtecke (Einzelteile oben, Baugruppen unten) | ||
var E1=box(0,6,1.5,7,'E1'); | var E1=box(0,6,1.5,7,'E1'); | ||
var E2=box(2,6,3.5,7,'E2'); | var E2=box(2,6,3.5,7,'E2'); | ||
| Zeile 52: | Zeile 52: | ||
var E4=box(6,6,7.5,7,'E4'); | var E4=box(6,6,7.5,7,'E4'); | ||
var B1=box( | var B1=box(0,2,1.5,3,'B1'); | ||
var B2=box( | var B2=box(2,2,3.5,3,'B2'); | ||
var B3=box( | var B3=box(4,2,5.5,3,'B3'); | ||
var B4=box(2, | var B4=box(6,2,7.5,3,'B4'); | ||
var B5=box( | var B5=box(8,2,9.5,3,'B5'); | ||
// Hilfsfunktion: Pfeil mit | // Hilfsfunktion: Pfeil mit Kreisen und Lücke | ||
function edge(from,to,label){ | function edge(from,to,label){ | ||
// Koordinatenpunkte (von und zu sind Arrays) | |||
var midX=(from[0]+to[0])/2; | var midX=(from[0]+to[0])/2; | ||
var midY=(from[1]+to[1])/2; | var midY=(from[1]+to[1])/2; | ||
| Zeile 66: | Zeile 67: | ||
var len=Math.sqrt(dirX*dirX+dirY*dirY); | var len=Math.sqrt(dirX*dirX+dirY*dirY); | ||
var ux=dirX/len, uy=dirY/len; | var ux=dirX/len, uy=dirY/len; | ||
var gap=0.3; | var gap=0.3; | ||
var p1=[midX-ux*gap, midY-uy*gap]; | var p1=[midX-ux*gap, midY-uy*gap]; | ||
var p2=[midX+ux*gap, midY+uy*gap]; | var p2=[midX+ux*gap, midY+uy*gap]; | ||
// Liniensegmente | |||
brd.create('arrow',[from,p1],{strokeColor:'#000',strokeWidth:1.5}); | |||
brd.create('arrow',[p2,to],{strokeColor:'#000',strokeWidth:1.5}); | |||
// Kreis | |||
brd.create('circle',[ [midX,midY],0.2 ],{fillColor:'white',strokeColor:'black'}); | |||
brd.create('text',[midX,midY,label], | |||
{anchorX:'middle',anchorY:'middle',fontSize:11}); | |||
} | } | ||
// | // Kanten – Start/Endpunkte an Rechteckrändern | ||
edge([0.75,6],[ | // B1: E1,E2 | ||
edge([2.75,6],[ | edge([0.75,6],[0.75,3],'2'); // E1→B1 | ||
edge([2.75,6],[0.75,3],'1'); // E2→B1 | |||
// B2: E1,E2 | |||
edge([ | edge([0.75,6],[2.75,3],'2'); // E1→B2 | ||
edge([ | edge([2.75,6],[2.75,3],'1'); // E2→B2 | ||
edge([0.75,6],[2.75, | // B3: E1,E2,E3 | ||
edge([4.75,6],[ | edge([0.75,6],[4.75,3],'1'); // E1→B3 | ||
edge([6.75,6],[ | edge([2.75,6],[4.75,3],'1'); // E2→B3 | ||
edge([4.75,6],[4.75,3],'1'); // E3→B3 | |||
// B4: E1,E3,E4 | |||
edge([0.75,6],[6.75,3],'2'); // E1→B4 | |||
edge([4.75,6],[6.75,3],'1'); // E3→B4 | |||
edge([6.75,6],[6.75,3],'1'); // E4→B4 | |||
// B5: E1,E4 | |||
edge([0.75,6],[8.75,3],'1'); // E1→B5 | |||
edge([6.75,6],[8.75,3],'2'); // E4→B5 | |||
</script> | </script> | ||
</html> | </html> | ||