Bis Band 5

This commit is contained in:
2026-04-04 22:12:19 +02:00
parent f97399615b
commit 3e9f098161
12 changed files with 2933 additions and 195 deletions
+240
View File
@@ -0,0 +1,240 @@
//#import "@preview/fletcher:0.5.8" as fletcher: diagram, node, edge
#import "@preview/marge:0.1.0": sidenote
#import "@preview/itemize:0.2.0" as el
#import "deckblatt.typ": deckblatt
#import "abhaengigkeit.typ": abhaengigkeit
#import "grafiken.typ": *
#let einruecken(abstand, inhalt) = pad(left: abstand, inhalt)
#let def-counter = counter("definition")
// Zähler bei jedem neuen Kapitel zurücksetzen
#show heading.where(level: 1): it => {
it
def-counter.update(0)
}
#let definition(title: none, body, label: none) = context {
def-counter.step()
let h1-num = counter(heading).at(here()).first()
let d-num = def-counter.at(here()).first()
let full-num = [#h1-num.#d-num]
// Die Figure wird erstellt und das Label direkt angehängt
[
#figure(
block(width: 100%, align(left)[
*Definition #full-num*: #if title != none [(#title)] #body
]),
kind: "definition",
supplement: [D.],
numbering: _ => full-num,
) #label
]
}
// Zähler bei jedem neuen Kapitel (Ebene 1) zurücksetzen
#show heading.where(level: 1): it => {
it
def-counter.update(1)
}
#let sn-base = sidenote
#show math.equation: it => {
if it.body.fields().at("size", default: none) != "display" {
return math.display(it)
}
it
}
#let snr(it) = sn-base(side: right, padding: 1em)[
#set text(size: 1.3em, weight: "bold")
#it
]
#let snl(it) = sn-base(side: left, padding: 1em)[
#set text(size: 1.3em, weight: "bold")
#it
]
#set text(
font: "Lato", //Serifenlose Schrift
size: 8.5pt,
lang: "de", //Deutsche Spracheinstellungen
)
#set page(
width:162mm,
height: 230mm,
margin: 20mm,
)
#set par(
justify: true, //Blocksatz
leading: 0.55em,
)
#let tt = "KÖRBER \u{2219} PFORR"
#let meinContent = [*Band 7* #sym.dot.c _Grundlagen_]
// Einfach die Funktion aufrufen
#deckblatt(bandnr: "5", autor: tt, titel: "Integralrechnung für Funktionen\nmit mehreren Variablen")
#pagebreak()
#set page(
width:162mm,
height: 230mm,
margin: 20mm,
)
#set par(
justify: true, //Blocksatz
leading: 0.55em,
)
#set page(
//background: grid(columns: (1mm,) * 162, rows: (1mm,) * 230, stroke: 0.1mm),
margin: (
top: 2mm,
bottom: 2mm,
x: 10mm,
),
width:162mm,
height: 230mm,
)
#v(9mm)
#heading(outlined: false)[Abhängigkeitsgraph]
#v(-6mm)
#scale(x:90%, y:90%)[#abhaengigkeit]
//#scale(factor: 90%, abhaengigkeit)
//#abhaengigkeit
#show heading: it => {
set block(below: if it.level == 1 { 2em } else { 1em })
it
}
#counter(page).update(1)
#pagebreak()
#set text(font: "Lato")
#set text(
font: "Lato", //Serifenlose Schrift
size: 9pt,
lang: "de", //Deutsche Spracheinstellungen
)
#set par(
justify: true,
leading: 0.55em,
)
#set page(
//background: grid(columns: (1mm,) * 162, rows: (1mm,) * 230, stroke: 0.1mm),
margin: (
top: 18mm,
bottom: 20mm,
x: 15mm,
),
width:162mm,
height: 230mm,
)
#set heading(numbering: "1.1.")
#set outline(indent: auto)
#set page(
header: context {
// 1. Kapitelstart-Check (wie zuvor)
let h1_on_page = query(heading.where(level: 1))
.any(it => it.location().page() == here().page())
if h1_on_page { return none }
let page_num = here().page()
// 2. Aktuelle Überschriften finden
let h1_current = query(heading.where(level: 1))
.filter(it => it.location().page() <= page_num).at(-1, default: none)
let h2_current = query(heading.where(level: 2))
.filter(it => it.location().page() <= page_num).at(-1, default: none)
// Hilfsfunktion: Nummer + Text zusammenfügen
let format-head(h) = {
if h != none {
// Falls die Überschrift eine Nummerierung hat, diese anzeigen
if h.numbering != none {
numbering(h.numbering, ..counter(heading).at(h.location()))
[ ] // Kleiner Abstand
}
h.body
}
}
// 3. Layout (Zahlen außen, Text innen oder wie gewünscht)
set text(size: 9pt, style: "italic") // Header dezent formatieren
if calc.even(page_num) {
// Gerade Seite: [Seite] [Kapitelnummer Text]
grid(
columns: (20pt, 1fr),
align(left)[#page_num],
align(right)[#format-head(h1_current)]
)
} else {
// Ungerade Seite: [Unterkapitelnummer Text] [Seite]
grid(
columns: (1fr, 20pt),
align(left)[#format-head(h2_current)],
align(right)[#page_num]
)
}
}
)
#set heading(numbering: "1.1.")
#show selector(<nonumber>): set heading(numbering: none)
#figure(
{
set math.equation(numbering: none)
scale(x: 90%, y: 90%, reflow: true, b2_4)
},
caption: [],
) <abb3>
#figure(
{
set math.equation(numbering: none)
scale(x: 90%, y: 90%, reflow: true, EC_drawing)
},
caption: [],
) <abb4>
#figure(
{
set math.equation(numbering: none)
scale(x: 90%, y: 90%, reflow: true, EC_drawing2)
},
caption: [],
) <abb5>
+360
View File
@@ -0,0 +1,360 @@
#import "@preview/fletcher:0.5.8" as fletcher: diagram, node, edge
#let mynode(pos, zahl, inhalt, name) = {
node(
pos,
name: name,
shape: rect, // 1. Zwingt Fletcher zum Rechteck
corner-radius: 0pt, // 2. Verhindert abgerundete Ecken
fill: white, // Optional: Hintergrund füllen
stroke: 1.25pt,
// 3. WICHTIG: Festlegen einer Mindestgröße, damit alle gleich starten
// Anstatt extrude nutzen wir feste Maße, die sich aber am Gitter ausrichten
width: 12em,
height: 5.8em,
{
// Dein Layout-Block
set align(top + right)
text(2.5em, fill: gray.darken(90%))[#zahl]
place(bottom + left, inhalt)
}
)}
#let myedge(start, end, type, ) = {
let sep = 0.15em
edge(start, end, type)
edge(start, end)
}
#let abhaengigkeit = diagram(
spacing: (11mm, 7mm),
//debug: 3,
edge-stroke: 1.25pt,
mark-scale: 55%,
mynode((0,0),"",[Vorbereitungsband], <A0>),
mynode((1,0),"1", [Grundlagen], <A1>),
mynode((2,0), "13",[Lineare Algebra], <A13>),
mynode((0,1),"3",[Unendliche Reihen], <A3>),
mynode((1,1), "2",[Differential- und Integralrechnung], <A2>),
mynode((2,1), "14",[Lineare Optimierung], <A14>),
mynode((0,2), [7$#sub(text(0.5em)[1])$],[Gewöhnliche Differentialgleichungen], <A7_1>),
mynode((1,2), "4",[Differentialrechnung mit mehreren Variablen], <A4>),
mynode((2,2), "15",[Nichtlineare Optimierung], <A15>),
mynode((0,3), [7$#sub(text(0.5em)[2])$],[Gewöhnliche Differentialgleichungen], <A7_2>),
mynode((1,3.), "5",[Integralrechnung mit mehreren Variablen], <A5>),
mynode((2,3), "16",[Optimale Prozesse und Systeme], <A16>),
mynode((0,4), "8",[Partielle Differentialgleichungen], <A8>),
mynode((1,4), "6",[Differentialgeometrie], <A6>),
mynode((2,4), "17",[Wahrscheinlichkeitsrechnung, math.Statistik], <A17>),
mynode((0,5), "9",[Komplexe Funktionen], <A9>),
mynode((1,5), "10",[Operatorenrechnung], <A10>),
mynode((2,5), [21$#sub(text(0.5em)[1])$],[Spieltheorie], <A21_1>),
mynode((0,6), "12",[Spezielle Funktionen], <A12>),
mynode((1,6), "11",[Tensoralgebra und -analysis], <A11>),
mynode((2,6), [21$#sub(text(0.5em)[2])$],[Graphentheorie], <A21_2>),
mynode((0,7), [18],[Numerische Methoden], <A18>),
mynode((1,7), [20],[Simulation], <A20>),
mynode((2,7), [19$#sub(text(0.5em)[1])$],[Stochastische Prozesse und Modelle], <A19_1>),
mynode((0,8), [22],[Funktionalanalysis], <A22>),
mynode((1,8), [23],[Symmetriegruppen], <A23>),
mynode((2,8), [19$#sub(text(0.5em)[2])$],[Statistische Versuchsplanung], <A19_2>),
myedge(<A0.east>,<A1.west>,"-|>"),
myedge(<A1.south>,<A2.north>,"-|>"),
myedge(<A2.west>,<A3.east>,"-|>"),
myedge(<A13.south>,<A14.north>,"-|>"),
myedge(<A2.south>,<A4.north>,"-|>"),
myedge(<A4.south>,<A5.north>,"-|>"),
myedge(<A5.south>,<A6.north>,"-|>"),
myedge(<A14.south>,<A15.north>,"-|>"),
myedge(<A7_1.south>,<A7_2.north>,"-|>"),
myedge(<A7_2.south>,<A8.north>,"-|>"),
myedge(<A8.south>,<A9.north>,"-|>"),
myedge(<A9.south>,<A12.north>,"-|>"),
myedge(<A12.south>,<A18.north>,"-|>"),
myedge(<A10.south>,<A11.north>,"-|>"),
myedge(<A15.south>,<A16.north>,"-|>"),
myedge(<A17.south>,<A21_1.north>,"-|>"),
myedge(<A19_1.south>,<A19_2.north>,"-|>"),
// NEUES Edge: 1,3 (n3_1) → 3,2 (n2_3)
// Verlauf: rechts von n3_1 nach rechts, runter auf Höhe von n2_3, dann links zur Node
//9 → 22
edge(
vertices: (
<A9.east>,
(0, 5.2), // deutlich nach rechts → sichtbarer Knick
(0.5, 5.2), // dann nach links
(0.5, 8), // runter
<A22.east>,
),
corner: right,
corner-radius: 0pt, // abgerundete Ecken!
stroke: orange + 1.25pt,
marks: "-|>",
shift: (1pt, 1pt),
),
//10 → 22
edge(
vertices: (
<A10.west>,
(1, 5.2), // deutlich nach rechts → sichtbarer Knick
(0.5, 5.2), // dann nach links
(0.5, 8), // runter
<A22.east>,
),
corner: left,
corner-radius: 0pt, // abgerundete Ecken!
stroke: orange + 1.25pt,
marks: "-|>",
shift: (1pt, 1pt),
),
//3 → 7.2
edge(
vertices: (
<A3.west>,
(-0.85, 1), // deutlich nach rechts → sichtbarer Knick
(-0.85, 1), // dann nach links
(-0.85, 3), // runter
<A7_2.west>,
),
corner: left,
corner-radius: 0pt, // abgerundete Ecken!
stroke: red + 1.25pt,
marks: "-|>",
shift: (1pt, 1pt),
),
//13 → 4
edge(
vertices: (
<A13.west>,
(2, 0.18), // deutlich nach rechts → sichtbarer Knick
(1.5, 0.2), // dann nach links
(1.5, 2), // runter
<A4.east>,
),
corner: left,
corner-radius: 0pt, // abgerundete Ecken!
stroke: green + 1.25pt,
marks: "-|>",
shift: (2pt, 2pt),
),
//1 → 13
edge(
(rel: (0pt, 5mm), to: <A1.east>),
(rel: (0.1, 0.)),
(rel: (0pt, 5mm), to: <A13.west>),
"-|>",
corner-radius: 0pt ,
stroke: green.darken(30%) + 1.25pt,
),
//5 → 8
edge(
(rel: (0pt, 0mm), to: <A5.west>),
(rel: (-0.15, 0.)),
(rel: (0.08,0), to: <A8.east>),
(rel: (0.,0), to: <A8.east>),
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt + olive,
),
//7_1 → 6
edge(
vertices: (
(rel: (0pt, -2pt), to: <A7_1.east>),
(0.25, 2.2),
(0.52, 2.2),
(0.52,4),
(rel: (0pt, 0pt), to: <A6.west>)
),
corner-radius: 0pt,
stroke: gray + 1.25pt,
marks: "-|>",
),
//4 → 7_1
edge(
(rel: (0pt, 5mm), to: <A4.west>),
(rel: (-0.1, 0.)),
(rel: (0pt, 5mm), to: <A7_1.east>),
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt ,
),
//9 → 10
edge(
(rel: (0pt, 5mm), to: <A9.east>),
(rel: (0.1, 0.)),
(rel: (0pt, 5mm), to: <A10.west>),
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt ,
),
//5 → 17
edge(
<A5.east>,
(rel: (0.07, 0.)),
(rel: (0, 0.5)),
(rel: (0pt, 10pt), to: <A17.north>),
<A17.north>,
"-|>",
corner-radius: 0pt ,
stroke: blue.lighten(20%) +1.25pt ,
),
//4 → 15
edge(
(rel: (0pt, -5mm), to: <A4.east>),
(rel: (0.1, 0.)),
(rel: (0pt, -5mm), to: <A15.west>),
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt ,
),
//8 → 16
edge(
(rel: (0.2,0), to: <A8.south>),
(rel: (0., 0.1)),
(rel: (1.3, 0.)),
(rel: (-0.115, 0), to: <A16.west>),
<A16.west>,
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt + yellow.darken(20%),
),
//6 → 11
edge(
(rel: (0pt, -5mm), to: <A6.east>),
(rel: (0.065, 0.)),
(rel: (0.065,0), to: <A11.east>),
(rel: (0.,0), to: <A11.east>),
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt + purple.lighten(20%),
),
//13 → 23
edge(
(<A13.east>),
(rel:(0.75,0)),
(rel:(0, 9.8)),// <----
(rel:(-3.38, 0)),
//(rel: (0.6, 0.), to: <A21_2.east>),
<A23.south>,
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt + orange.darken(10%),
),
//15 → 21_1 21_2
edge(
(<A15.east>),
// Startpunkt
(rel: (0.5, 0)),
(rel: (0.5, 0.), to: <A21_1.east>),
<A21_1.east>,
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt + blue,
),
edge(
(<A15.east>),
// Startpunkt
(rel: (0.5, 0)),
(rel: (0.5, 0.), to: <A21_2.east>),
<A21_2.east>,
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt + blue,
),
//16 → 19_1 19_2
edge(
(<A16.east>),
(rel: (0.3, 0)),
(rel: (0.3, 0.), to: <A19_1.east>),
<A19_1.east>,
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt + purple,
),
edge(
(<A16.east>),
(rel: (0.3, 0)),
(rel: (0.3, 0.), to: <A19_2.east>),
<A19_2.east>,
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt + purple,
),
//17 → 21_2
edge(
(rel: (-0.2,0), to: <A17.south>),
(rel: (0, 0.2)),
(rel: (-.325, 0.)),
(rel: (-0.14, 0), to: <A21_2.west>),
<A21_2.west>,
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt + red,
),
//17 → 19_1, 19_2
edge(
(<A17.west>),
(rel: (-0.075, 0)),
(rel: (-0.075,-0.20), to: <A19_1.west>),
(rel: (0.,-0.2), to: <A19_1.west>),
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt + green,
),
edge(
(<A17.west>),
(rel: (-0.075, 0)),
(rel: (-0.075, 0.), to: <A19_2.west>),
<A19_2.west>,
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt + green,
),
//19_2 → 20
edge(
(<A19_2.north>),
(rel: (-0.2, 0)),
(rel: (0, -0.1)),
(rel: (-0, 0.18), to: <A20.south>),
<A20.south>,
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt + blue,
),
)
+250
View File
@@ -0,0 +1,250 @@
#let deckblatt(bandnr: "", autor: "", titel: "") = {
place(
top + left,
dx: -20mm, // Hebt den linken Rand auf
dy: -20mm, // Abstand von der Oberkante des Blattes
rect(
width: 163mm, // Exakte Breite A4
height: 230mm,
fill: rgb(52.2%, 87.8%, 78.4%),
inset: (right: 1cm, left: 7mm, top: 1cm),
//stroke: 0.5pt + red,
))
place(
top + left,
dx: -20mm,
dy: 12mm,
//Linie
rect(
width: 162mm,
height: 2mm,
fill: rgb(100%, 100%, 87.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
))
place(
top + left,
dx: -2.5cm,
dy: 1.4cm,
rect(
width: 27cm, height: 2mm,
fill: rgb(17.3%, 19.6%, 36.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
))
place(
top + left,
dx: -2.5cm,
dy: 1.6cm,
rect(
width: 27cm, // Exakte Breite A4
height: 2mm,
fill: rgb(100%, 100%, 87.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
//stroke: 0.5pt + red,
))
place(
top + left,
dx: -2.5cm,
dy: 1.8cm,
rect(
width: 27cm, // Exakte Breite A4
height: 2mm,
fill: rgb(17.3%, 19.6%, 36.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
//stroke: 0.5pt + red,
))
place(
top + left,
dx: -2.5cm, // Hebt den linken Rand auf
dy: 2cm, // Abstand von der Oberkante des Blattes
rect(
width: 27cm, // Exakte Breite A4
height: 2mm,
fill: rgb(100%, 100%, 87.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
//stroke: 0.5pt + red,
))
place(
top + left, // Wo auf der Seite (oder im Absatz)
dx: 94mm, // Versatz von links
dy: 85mm, // Versatz von oben
{
import "@preview/cetz:0.3.1"
cetz.canvas({
import cetz.draw: *
// Halbkreis
arc((x:0,y:0), start: 0deg, stop: -180deg, radius: 17mm, fill: rgb(100%, 100%, 87.1%), stroke: none)
})
}
)
place(
top + left,
dx: -2.5cm, // Hebt den linken Rand auf
dy: 2.2cm, // Abstand von der Oberkante des Blattes
rect(
width: 230cm, // Exakte Breite A4
height: 58mm,
fill: rgb(12.9%, 18%, 32.9%),
inset: (right: 1cm, left: 7mm, top: 1cm),
//stroke: 0.5pt + red,
))
place(
top + left,
dx: -2.5cm, // Hebt den linken Rand auf
dy: 80mm,
rect(
width: 27cm,
height: 2mm,
fill: rgb(100%, 100%, 87.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
))
place(
top + left,
dx: -2.5cm,
dy: 82mm,
rect(
width: 27cm,
height: 2mm,
fill: rgb(17.3%, 19.6%, 36.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
))
place(
top + left,
dx: -2.5cm,
dy: 84mm,
rect(
width: 27cm,
height: 2mm,
fill: rgb(100%, 100%, 87.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
))
place(
top + left,
dx: -2.5cm,
dy: 86mm,
rect(
width: 27cm,
height: 2mm,
fill: rgb(17.3%, 19.6%, 36.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
))
place(
top + left,
dx: -2.5cm, // Hebt den linken Rand auf
dy: 88mm,
rect(
width: 27cm,
height: 2mm,
fill: rgb(100%, 100%, 87.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
))
/* place(
top + left,
dx: 7.5cm, // Hebt den linken Rand auf
dy: 62mm,
circle( radius: 15mm, fill: rgb(100%, 32.2%, 18.8%)),
//height: 2mm,
//fill: rgb(100%, 100%, 87.1%),
//inset: (right: 1cm, left: 7mm, top: 1cm),
) */
place(
top + left,
dx: 95mm,
dy: 68mm,
box(width: 30mm, height: 30mm)[
#circle(radius: 16mm, fill: rgb(100%, 32.2%, 18.8%), stroke: none)
#place(center + horizon)[
// Wir erzwingen hier ALLES neu
#set text(font: "Fira Math", size: 48pt, fill: black)
#bandnr
]
]
/* {
set align(center + horizon)
text(weight: "bold",fill: black, size: 45pt)[$1$]
}*/
)
// Text
place(
top + left,
dx: -12mm,
dy: 2.6cm,
// box mit width: auto erlaubt der Zeile, beliebig lang zu werden
box(width: 150%, {
text(7.5em, fill: rgb(100%, 32.2%, 18.8%), weight: "bold",style: "italic", tracking: 0.06em, font: "Lato")[MATHEMATIK]
})
)
place(
top + left,
dx: -12mm,
dy: 4.7cm,
// box mit width: auto erlaubt der Zeile, beliebig lang zu werden
box(width: 150%, {
text(2em, fill: rgb(100%, 100%, 87.1%), weight: "bold", tracking: 0em, font: "Lato")[FÜR INGENIEURE]
})
)
place(
top + left,
dx: 0.1cm,
dy: 5.4cm,
// box mit width: auto erlaubt der Zeile, beliebig lang zu werden
box(width: 150%, {
text(2em, fill: rgb(100%, 100%, 87.1%), weight: "bold", tracking: 0em, font: "Lato")[NATURWISSENSCHAFTLER]
})
)
place(
top + left,
dx: 0.1cm,
dy: 6.1cm,
// box mit width: auto erlaubt der Zeile, beliebig lang zu werden
box(width: 150%, {
text(2em, fill: rgb(100%, 100%, 87.1%), weight: "bold", tracking: 0em, font: "Lato")[ÖKONOMEN]
}))
place(
top + left,
dx: 0.1cm,
dy: 6.8cm,
// box mit width: auto erlaubt der Zeile, beliebig lang zu werden
box(width: 150%, {
text(2em, fill: rgb(100%, 100%, 87.1%), weight: "bold", tracking: 0em, font: "Lato")[LANDWIRTE]
}))
place(
top + left,
dx: -0.7cm,
dy: 10cm,
// box mit width: auto erlaubt der Zeile, beliebig lang zu werden
box(width: 150%, {
text(1.25em, fill: rgb(3.1%, 20%, 29%), weight: "bold", tracking: 0.05em, font: "Lato")[#autor]
}))
place(
top + left,
dx: -0.7cm,
dy: 11.5cm,
// box mit width: auto erlaubt der Zeile, beliebig lang zu werden
box(width: 150%, {
set par(leading: 1em)
text(2.5em, fill: rgb(3.1%, 20%, 29%),weight: "bold", tracking: 0.0em, font: "Lato")[#titel]
}))
}
+164
View File
@@ -0,0 +1,164 @@
#import "@preview/fletcher:0.5.8" as fletcher: diagram, node, edge
#import "@preview/cetz:0.4.2" //Grafiken
#import "@preview/cetz-plot:0.1.3": plot
#let bent-edge(from, to, ..args) = {
let midpoint = (from, 50%, to)
let vertices = (
from,
(from, "|-", midpoint),
(midpoint, "-|", to),
to,
)
edge(..vertices, "-|", ..args)
}
#let b3_0 = diagram(
node-stroke: luma(80%),
edge-corner-radius: none,
spacing: (10pt, 20pt),
// Nodes
node((1.5,0), [1.#h(3mm)2.#h(3mm)3.1.], name: <a>),
node((0.5,1), [4.1.-4.3.], name: <b>),
node((2.5,1), [3.2.-3.3.], name: <c>),
node((0,2), [4.4.-4.5.], name: <d>),
node((1,2), [4.6.], name: <e>),
node((2.501,2), [5.1.-5.5.], name: <f>),
node((2,3), [5.6.], name: <g>),
node((3,3), [5.7.], name: <h>),
node((4,3), [5.8.], name: <i>),
node((5,3), [5.9.], name: <j>),
node((6,3), [5.10.], name: <k>),
node((2.001,4), [#h(1mm)6.#h(1mm) ], name: <m>),
// Edges
bent-edge(<a>, <b>),
bent-edge(<a>, <c>),
bent-edge(<b>, <d>),
bent-edge(<b>, <e>),
bent-edge(<c>, <f>),
bent-edge(<c>, <f>),
bent-edge(<f>, <g>),
bent-edge(<f>, <h>),
bent-edge(<f>, <i>),
bent-edge(<f>, <j>),
bent-edge(<f>, <k>),
bent-edge(<g>, <m>),
)
#let b2_4 = cetz.canvas({
import cetz.draw: *
//import cetz-plot: *
let f = x => (0.01 * calc.pow(x, 3) - 0.2 * calc.pow(x, 2) + 0.8 * x + 3) + 5
let g = x => -(0.01 * calc.pow(x, 3) - 0.2 * calc.pow(x, 2) + 0.8 * x + 3) + 5
plot.plot(
size: (6, 7),
name: "plot",
axis-style: "school-book",
x-tick-step: none,
y-tick-step: none,
x-label: $x$,
y-label: $y$,
x-ticks: ((3, $x_1$), (12, $x_2$), (8, $x$)),
{
plot.add(domain: (2, 13), f, style: (stroke: red), samples: 300)
plot.add(domain: (2, 13), g, style: (stroke: blue), samples: 300)
plot.add-fill-between(
domain: (3, 12),
g,
f,
style: (
stroke: none,
fill: tiling(size: (3pt, 3pt), square(stroke: gray)),
),)
// Hilfslinie damit Koordinatensystem nicht verrutscht
plot.add(((0, 0), (0, 0.1)), style: (stroke: none))
plot.add-anchor("G1", (3, g(3)))
plot.add-anchor("F1", (3, f(3)))
plot.add-anchor("G1", (12, g(12)))
plot.add-anchor("G1", (12, g(12)))
plot.add(((3, 0), (3, f(3))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt)))
plot.add(((12, 0), (12, f(12))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt)))
},
)
})
#let EC_func(x) = {
let y = x*x*x - 4*x + 6
if y < 0 {
return 0
}
return calc.sqrt(y)
}
#let EC_drawing = cetz.canvas({
plot.plot(
size: (10, 10),
x-tick-step: 5,
y-tick-step: 20,
x-min: -5,
max: 10,
x-grid: true,
y-grid: true,
{
plot.add(domain: (-5, 10), EC_func, samples: 300)
plot.add(domain: (-5, 10), t => (t, -EC_func(t)),samples: 300)
})
})
#let EC_func2(x) = {
let y = (x - 3)*(x - 3)*(x - 3) - 4*(x - 3) + 12
if y < 0 {
return 0
}
return calc.sqrt(y)
}
#let EC_func3(x) = {
let y = -((x - 3)*(x - 3)*(x - 3) - 4*(x - 3)) + 4
if y < 0 {
return 0
}
return calc.sqrt(y)
}
#let EC_drawing2 = cetz.canvas({
plot.plot(
name: "plot",
axis-style: "school-book",
size: (10, 10),
x-tick-step: none,
y-tick-step: 20,
x-min: 0,
x-max: 7,
x-grid: true,
y-grid: true,
{
plot.add(((0, 0), (0, 0.1)), style: (stroke: none))
plot.add(domain: (1, 6), EC_func2, samples: 300)
plot.add(domain: (1, 6), EC_func3,samples: 300)
})
})