// #import "@preview/cetz:0.4.0": canvas // #import "@preview/cetz-plot:0.1.2": plot // #canvas({ // plot.plot( // size: (8, 8), // axis-style: "school-book", // nur Achsen, kein Rahmen[web:17] // x-min: -2, x-max: 2, // negativer und positiver x-Bereich[web:27] // y-min: -1, y-max: 3.5, // x-tick-step: none, // automatische Ticks aus[web:24] // y-tick-step: none, // // nur 1/2 und x auf der x-Achse: // x-ticks: ( // (0.5, $1/2$), // (1.25, $x$), // ), // // z.B. ein paar y-Ticks, falls gewünscht: // y-ticks: ( // (0.25, $1/4$), // (1.5625, $x^2$), // ), // shared-zero: false, // optional: 0 am Ursprung ausblenden[web:16] // // Parabel: y = x^2 auf [-2,2] // plot.add( // domain: (-3, 3), // (x) => x * x, // ) // ) // }) // #import "@preview/cetz:0.4.2" // #import "@preview/cetz-plot:0.1.3": plot // #cetz.canvas({ // //import cetz.plot // //import cetz.palette // import cetz.draw: * // plot.plot( // size: (6, 6), // x-tick-step: none, // y-tick-step: none, // axis-style: "school-book", // x-label: $x$, // y-label: $y$, // x-ticks: ( // (0.5, $1/2$), // (1.25, $x$), // ), // y-ticks: ( // (0.25, $1/4$), // (1.5625, $x^2$), // ), // { // let f = x => calc.pow(x, 2) // // Definition der Punkte // let x0 = 0.5 // let y0 = f(x0) // let x1 = 1.25 // let y1 = f(x1) // // Berechnung der Steigung m = (y1 - y0) / (x1 - x0) // let m = (y1 - y0) / (x1 - x0) // // Sekantenfunktion: s(x) = m * (x - x0) + y0 // let s = x => m * (x - x0) + y0 // // 1. Die Parabel // plot.add(f, domain: (-1.3, 1.8), label: $f(x) = x^2$) // // 2. Die Sekante (etwas weiter gezeichnet für die Optik) // plot.add(s, domain: (0, 2), style: (stroke: blue)) // // 3. Die Punkte markieren // plot.add(((x0, y0),), mark: "o", label: $P_0$) // plot.add(((x1, y1),), mark: "o", label: $P$) // // 4. Hilfslinien (gestrichelt) // plot.add(((x0, 0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.5pt))) // plot.add(((x1, 0), (x1, y1)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.5pt))) // plot.add(((x0, y0), (x1, y0)), style: (stroke: ( paint: gray.darken(80%), thickness: 0.5pt))) // plot.add-anchor("pt1", (2,5)) // } // ) // // content("plot.x", [asdf]) // }) // #import "@preview/cetz:0.4.2" // #import "@preview/cetz-plot:0.1.2": plot // #cetz.canvas({ // plot.plot( // size: (6, 6), // x-tick-step: 1, // y-tick-step: 1, // axis-style: "school-book", // x-label: $x$, // y-label: $y$, // { // let f = x => calc.pow(x, 2) // let x0 = 0.5 // let x1 = 1.5 // // 1. Die Parabel // plot.add(f, domain: (-1.3, 1.8), label: $f(x)$) // // 2. Die Sekante // let m = (f(x1) - f(x0)) / (x1 - x0) // plot.add(x => m * (x - x0) + f(x0), domain: (0, 2), style: (stroke: blue)) // // 3. Hilfslinien // plot.add(((x0, 0), (x0, f(x0))), style: (stroke: (dash: "dashed", paint: gray))) // plot.add(((x1, 0), (x1, f(x1))), style: (stroke: (dash: "dashed", paint: gray))) // // 4. Beschriftungen OHNE den "bounds" Fehler // // Wir nutzen plot.add mit leeren Markern oder speziellen Labels // // Punkte markieren und direkt beschriften // plot.add(((x0, f(x0)),), mark: "o", label: $P_0$) // plot.add(((x1, f(x1)),), mark: "o", label: $P$) // // Beschriftung an der x-Achse // // Trick: Wir addieren einen "unsichtbaren" Punkt an der Achse mit Label // plot.add(((x0, 0),), label: $x_0$, mark: none) // plot.add(((x1, 0),), label: $x$, mark: none) // } // ) // }) // #import "@preview/cetz:0.4.2" // #import "@preview/cetz-plot:0.1.2" as cetz_plot // #cetz.canvas({ // let cp = cetz_plot.plot // let x0 = 0.5 // let x1 = 1.5 // let f = x => calc.pow(x, 2) // let y0 = f(x0) // let y1 = f(x1) // cp.plot( // size: (6, 6), // x-tick-step: 1, // y-tick-step: 1, // axis-style: "school-book", // x-label: $x$, // y-label: $y$, // { // // 1. Die Graphen // cp.add(f, domain: (-1.3, 1.8)) // let m = (y1 - y0) / (x1 - x0) // cp.add(x => m * (x - x0) + y0, domain: (-0.2, 2.2), style: (stroke: blue)) // // 2. Hilfslinien // cp.add(((x0, 0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray))) // cp.add(((x1, 0), (x1, y1)), style: (stroke: (dash: "dashed", paint: gray))) // // 3. Punkte P0 und P // cp.add(((x0, y0),), mark: "o") // cp.add(((x1, y1),), mark: "o") // // 4. BESCHRIFTUNG (Der Trick: add mit mark: none) // // Wir setzen die Labels direkt an die Koordinaten // // x-Achse Beschriftung (leicht unter y=0 verschoben mit 'label-offset') // cp.add(((x0, 0),), label: $x_0$, mark: none) // cp.add(((x1, 0),), label: $x$, mark: none) // // Punkte beschriften // cp.add(((x0 - 0.1, y0 + 0.3),), label: $P_0$, mark: none) // cp.add(((x1 + 0.2, y1),), label: $P$, mark: none) // // Funktionsnamen // cp.add(((1.6, 3.2),), label: $f(x)$, mark: none) // } // ) // }) // #import "@preview/cetz:0.4.2" // #import "@preview/cetz-plot:0.1.2" as cetz_plot // #cetz.canvas({ // import cetz.draw: * // let cp = cetz_plot.plot // // 1. Parameter festlegen // let (w, h) = (6, 6) // Größe des Plots // let x-min = -1.5 // let x-max = 2.5 // let y-min = -1.0 // let y-max = 4.0 // let x0 = 0.5 // let x1 = 1.5 // let f = x => calc.pow(x, 2) // let y0 = f(x0) // let y1 = f(x1) // // 2. Den Plot zeichnen (als Basis) // cp.plot( // size: (w, h), // x-tick-step: 1, // y-tick-step: 1, // axis-style: "school-book", // x-label: $x$, // y-label: $y$, // x-domain: (x-min, x-max), // y-domain: (y-min, y-max), // name: "p", // { // cp.add(f, domain: (x-min, x-max)) // let m = (y1 - y0) / (x1 - x0) // cp.add(x => m * (x - x0) + y0, domain: (x-min, x-max), style: (stroke: blue)) // cp.add(((x0, 0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray))) // cp.add(((x1, 0), (x1, y1)), style: (stroke: (dash: "dashed", paint: gray))) // cp.add(((x0, y0),), mark: "o") // cp.add(((x1, y1),), mark: "o") // } // ) // // 3. DER FIX: Manuelle Beschriftung über das "p.origin" // // Wir nutzen die Größe des Plots, um die Koordinaten selbst zu setzen. // // Da der Ursprung im school-book Stil bei (0,0) liegt: // let plot-coords(x, y) = { // let px = (x / (x-max - x-min)) * w // let py = (y / (y-max - y-min)) * h // return (rel: (px, py), to: "p.origin") // } // // Beschriftungen (Diese liegen nun außerhalb des Plot-Berechnungs-Logik) // content(plot-coords(x0, -0.4), $x_0$) // content(plot-coords(x1, -0.4), $x$) // content(plot-coords(x0 - 0.3, y0 + 0.3), $P_0$) // content(plot-coords(x1 + 0.3, y1), $P$) // content(plot-coords(1.6, 3.2), $f(x)$) // }) // #import "@preview/cetz:0.4.2" // #cetz.canvas({ // import cetz.draw: * // // 1. Koordinatensystem manuell skalieren (1 Einheit = 1.5cm) // scale(1.5) // // Parameter // let x0 = 0.5 // let x1 = 1.5 // let f(x) = calc.pow(x, 2) // let y0 = f(x0) // let y1 = f(x1) // // 2. Achsen zeichnen (School-Book) // line((-1.5, 0), (2.5, 0), mark: (end: ">"), name: "xaxis") // line((0, -1), (0, 4), mark: (end: ">"), name: "yaxis") // content((2.5, -0.3), $x$) // content((-0.3, 4), $y$) // // 3. Parabel zeichnen (Sampling-Methode: Sicherster Weg ohne Extra-Module) // let points = () // for i in range(-13, 19) { // let x = i / 10 // points.push((x, f(x))) // } // line(..points, stroke: black) // // 4. Sekante zeichnen // let m = (y1 - y0) / (x1 - x0) // // Gerade: y = m*(x - x0) + y0 // line((-0.5, m * (-0.5 - x0) + y0), (2.2, m * (2.2 - x0) + y0), stroke: blue) // // 5. Hilfslinien & Punkte // line((x0, 0), (x0, y0), stroke: (dash: "dashed", paint: gray)) // line((x1, 0), (x1, y1), stroke: (dash: "dashed", paint: gray)) // circle((x0, y0), radius: 0.05, fill: black) // circle((x1, y1), radius: 0.05, fill: black) // // 6. BESCHRIFTUNGEN (Direkt an den Objekten) // content((x0, -0.4), $x_0$) // content((x1, -0.4), $x$) // content((x0 - 0.3, y0 + 0.2), $P_0$) // content((x1 + 0.3, y1), $P$) // content((1.8, f(1.8)), $f(x)$, anchor: "west", padding: .1) // content((2.1, 3.5), [Sekante], fill: white, padding: .1) // }) // #import "@preview/cetz:0.4.2" // #cetz.canvas({ // import cetz.draw: * // // 1. Koordinatensystem manuell skalieren (1 Einheit = 1.5cm) // scale(1.5) // // Parameter // let x0 = 0.5 // let x1 = 1.5 // let f(x) = calc.pow(x, 2) // let y0 = f(x0) // let y1 = f(x1) // // 2. Achsen zeichnen (School-Book) // line((-1.5, 0), (2.5, 0), mark: (end: ">"), name: "xaxis") // line((0, -1), (0, 4), mark: (end: ">"), name: "yaxis") // content((2.5, -0.3), $x$) // content((-0.3, 4), $y$) // // 3. Parabel zeichnen (Sampling-Methode: Sicherster Weg ohne Extra-Module) // let points = () // for i in range(-13, 19) { // let x = i / 10 // points.push((x, f(x))) // } // line(..points, stroke: black) // // 4. Sekante zeichnen // let m = (y1 - y0) / (x1 - x0) // // Gerade: y = m*(x - x0) + y0 // line((-0.5, m * (-0.5 - x0) + y0), (2.2, m * (2.2 - x0) + y0), stroke: blue) // // 5. Hilfslinien & Punkte // line((x0, 0), (x0, y0), stroke: (dash: "dashed", paint: gray)) // line((x1, 0), (x1, y1), stroke: (dash: "dashed", paint: gray)) // circle((x0, y0), radius: 0.05, fill: black) // circle((x1, y1), radius: 0.05, fill: black) // // 6. BESCHRIFTUNGEN (Direkt an den Objekten) // content((x0, -0.4), $x_0$) // content((x1, -0.4), $x$) // content((x0 - 0.3, y0 + 0.2), $P_0$) // content((x1 + 0.3, y1), $P$) // content((1.8, f(1.8)), $f(x)$, anchor: "west", padding: .1) // content((2.1, 3.5), [Sekante], fill: white, padding: .1) // }) // #import "@preview/cetz:0.4.2" // #align(center, // cetz.canvas({ // // import cetz.plot // import cetz.palette // import cetz.draw: * // plot.plot(size: (5,5), // name: "plot", // x-tick-step: 2, // x-minor-tick-step: 1, // y-tick-step: 6, // y-minor-tick-step: 1, // axis-style: "school-book", { // plot.add(domain: (-2.5, 2.5), // x => (4-calc.pow(x, 2)), // style: palette.tango-light) // plot.add(domain: (-2.5, 2.5), // x => (4-2*x), // style: palette.tango-light) // plot.add-fill-between(domain: (0, 2), // x => (4-calc.pow(x, 2)), // x => (4-2*x), // style: palette.tango-light) // plot.add(((0,4), (2,0)), // mark: "o", // mark-style: (stroke: none, fill: black), // style: (stroke: none)) // plot.add-anchor("pt1", (2,5)) // plot.add-anchor("pt2", (-2,5.5)) // plot.add-anchor("parab", (1, 4-calc.pow(1, 2)+0.2)) // plot.add-anchor("rline", (-1.5, 4-2*(-1.5)-0.2)) // }) // content("plot.pt1", [$y=4-2x^2$], anchor: "south", name: "prb") // line("plot.parab", "prb", mark: (start: ">")) // content("plot.pt2", [$y=4-2x$], anchor: "north", name: "curve2") // line("plot.rline", "curve2", mark: (start: ">")) // }) // ) // #align(center, // cetz.canvas({ // // import cetz.plot // // import cetz.palette // import cetz.draw: * // plot.plot( // size: (6,6), // name: "plot", // x-tick-step: none, // y-tick-step: none, // x-label: $x$, // y-label: $y$, // x-ticks: ((0.5, $1/2$),(1.25, $x$),), // y-ticks: ((0.25, $1/4$),(1.5625, $x^2$),), // axis-style: "school-book", // plot.add( // domain: (-1.3, 1.8), // x => (calc.pow(x, 2)), // ) // )})) // #import "@preview/cetz:0.4.2" // #import "@preview/cetz-plot:0.1.3": plot // #cetz.canvas({ // //import cetz.plot // //import cetz.palette // import cetz.draw: * // plot.plot( // size: (6, 6), // x-tick-step: none, // y-tick-step: none, // axis-style: "school-book", // x-label: $x$, // y-label: $y$, // x-ticks: ( // (0.5, $1/2$), // (1.25, $x$), // ), // y-ticks: ( // (0.25, $1/4$), // (1.5625, $x^2$), // ), // { // let f = x => calc.pow(x, 2) // // Definition der Punkte // let x0 = 0.5 // let y0 = f(x0) // let x1 = 1.25 // let y1 = f(x1) // // Berechnung der Steigung m = (y1 - y0) / (x1 - x0) // let m = (y1 - y0) / (x1 - x0) // // Sekantenfunktion: s(x) = m * (x - x0) + y0 // let s = x => m * (x - x0) + y0 // // 1. Die Parabel // plot.add(f, domain: (-1.3, 1.8), label: $f(x) = x^2$) // // 2. Die Sekante (etwas weiter gezeichnet für die Optik) // plot.add(s, domain: (0, 2), style: (stroke: blue)) // // 3. Die Punkte markieren // plot.add(((x0, y0),), mark: "o", label: $P_0$) // plot.add(((x1, y1),), mark: "o", label: $P$) // // 4. Hilfslinien (gestrichelt) // plot.add(((x0, 0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.5pt))) // plot.add(((x1, 0), (x1, y1)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.5pt))) // plot.add(((x0, y0), (x1, y0)), style: (stroke: ( paint: gray.darken(80%), thickness: 0.5pt))) // plot.add-anchor("pt1", (2,5)) // } // ) // // content("plot.x", [asdf]) // }) #import "@preview/cetz:0.4.2" #import "@preview/cetz-plot:0.1.3": plot #cetz.canvas({ import cetz.draw: * plot.plot( //definitionen { //berechnungen und plot } ) }) #import "@preview/cetz:0.4.2" #import "@preview/cetz-plot:0.1.3": plot #cetz.canvas(length: 1.25cm,{ import cetz.draw: * set-style( axes: ( // Basisstil beibehalten stroke: (thickness: 0.5pt), // x-Achse: stealth-Pfeil am Ende x: (mark: (end: "stealth", fill: black)), // y-Achse: stealth-Pfeil am Ende y: (mark: (end: "stealth", fill: black)), ), ) plot.plot( //definitionen name: "plot", size: (6, 6), x-tick-step: none, y-tick-step: none, axis-style: "school-book", x-label: $x$, y-label: $y$, x-ticks: ((0.5, $1/2$),(1.25, $x$),), y-ticks: ((0.25, $1/4$),(1.5625, $x^2$),), { //berechnungen und plot let f = x => calc.pow(x, 2) let x0 = 0.5 let y0 = f(x0) let x1 = 1.25 let y1 = f(x1) // Berechnung der Steigung m = (y1 - y0) / (x1 - x0) let m = (y1 - y0) / (x1 - x0) // Sekantenfunktion: s(x) = m * (x - x0) + y0 let s = x => m * (x - x0) + y0 let x1_1 = x1 + 0.1 let x0_1 = x0 - 0.2 let y0_1 = y0 + 0.2 let x2 = ((x1 - x0)/2) + x0 let y3 = ((y1 - y0)/2) +y0 plot.add(x => calc.pow(x, 2), domain: (-1.4, 1.8)) //Sekante plot.add(s, domain: (0.3, 1.7), style: (stroke: red)) plot.add-anchor("pt1", (-1.4,y1)) plot.add-anchor("P", (x1_1,y1)) plot.add-anchor("P0", (x0_1,y0_1)) plot.add-anchor("F1", (x2,0.14)) plot.add-anchor("F2", (x1+0.1,y3)) plot.add(((x0, 0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) plot.add(((x1, 0), (x1, y1)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) plot.add(((0, y1), (x1, y1)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) plot.add(((0, y0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) plot.add(((x0, y0), (x1, y0)), style: (stroke: ( paint: gray.darken(80%), thickness: 0.5pt))) plot.add(((x1, y0), (x1, y1)), style: (stroke: ( paint: gray.darken(80%), thickness: 0.5pt))) plot.add(((x0, y0),), mark: "o") plot.add(((x1, y1),), mark: "o") } ) //Der Plot muss einen Namen haben content("plot.pt1", text(0.85em)[$y=x^2$], anchor: "east", name: "pt") content("plot.P", text(0.75em)[$P$], anchor: "west", name: "p") content("plot.P0", text(0.75em)[$P_0$], anchor: "west", name: "p0") content("plot.F1", text(0.75em)[$x- 1/2$], anchor: "center", name: "f1") content("plot.F2", text(0.75em)[$x^2- 1/4$], anchor: "west", name: "f2") }) #import "@preview/cetz:0.4.2" #import "@preview/cetz-plot:0.1.3": plot #cetz.canvas({ import cetz.draw: * set-style( axes: ( // Basisstil beibehalten stroke: (thickness: 0.5pt), // x-Achse: stealth-Pfeil am Ende x: (mark: (end: "stealth", fill: black)), // y-Achse: stealth-Pfeil am Ende y: (mark: (end: "stealth", fill: black)), ), ) plot.plot( name: "plot", size: (5, 5), x-tick-step: none, y-tick-step: none, axis-style: "school-book", x-label: $x$, y-label: $y$, x-ticks: ((0.5, $1/2$),), y-ticks: ((1, $1$),), //definitionen { let f = x => if x != 0.5 { (calc.pow(x, 2) - 0.25) / (x - 0.5) } else { none } let x0 = 0.5 let y0 = 1 plot.add(f, domain: (-0.6, 0.75), style: (stroke: blue)) plot.add(((x0, 0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) plot.add(((0, y0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) plot.add(((x0, y0),), mark: "o") plot.add-anchor("F1", (-.7,0.5)) plot.add-anchor("F2", (-.7,0.35)) } ) content("plot.F1", text(0.85em)[$y=(x^2-1/4)/(x-1/2)$], anchor: "west", name: "pt") content("plot.F2", text(0.85em)[$(x eq.not 1/2)$], anchor: "west", name: "pt") }) #import "@preview/cetz:0.4.2" #import "@preview/cetz-plot:0.1.3": plot #cetz.canvas({ import cetz.draw: * plot.plot( //definitionen { //berechnungen und plot } ) }) #import "@preview/cetz:0.4.1" #import "@preview/cetz-plot:0.1.2" #cetz.canvas({ import cetz.draw: * import cetz-plot: * let f = x => (calc.pow(x,3)+0.5) let x1 = 0.35 let x3 = 0.5 let x0 = 0.7 let x2 = 0.8 let y1 = f(x1) 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: ((x1, $x_1$),(x3, $x_3$),(x0, $x_0$),(x2, $x_2$),), y-ticks: ((f(x1), $f(x_1)$),(f(x2), $f(x_2)$),(f(x0), $g$),(f(x3), $f(x_3)$)), { plot.add(domain: (0.25, 1), f, style: (stroke: red)) // Hilfslinie damit Koordinatensystem nicht verrutscht plot.add(((0, 0), (0, 0.1)), style: (stroke: none)) //circle((x1, y1), radius: 0.05, fill: black) plot.add(((x1, 0), (x1, f(x1))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) plot.add(((0, f(x1)), (x1, f(x1))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) plot.add(((x3, 0), (x3, f(x3))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) plot.add(((0, f(x3)), (x3, f(x3))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) plot.add(((x0, 0), (x0, f(x0))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) plot.add(((0, f(x0)), (x0, f(x0))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) plot.add(((x2, 0), (x2, f(x2))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) plot.add(((0, f(x2)), (x2, f(x2))), style: (stroke: (dash: "dashed", paint: gray, thickness: 1pt))) plot.add(((x1, f(x1)),), mark: "o", mark-style:(stroke: (paint: black, thickness: 0.75pt), fill: black)) plot.add(((x3, f(x3)),), mark: "o", mark-style:(stroke: (paint: black, thickness: 0.75pt), fill: black)) plot.add(((x0, f(x0)),), mark: "o", mark-style:(stroke: (paint: black, thickness: 0.75pt), fill: white)) plot.add(((x2, f(x2)),), mark: "o", mark-style:(stroke: (paint: black, thickness: 0.75pt), fill: black)) plot.add-anchor("F", (x2 + 0.1,f(x2))) }) content("plot.F", text(0.85em)[$y=x^2$], anchor: "west", name: "pt") }) #import "@preview/cetz:0.4.2" #align(center, cetz.canvas({ import cetz-plot: * import cetz.palette import cetz.draw: * plot.plot(size: (5,5), name: "plot", x-tick-step: 2, x-minor-tick-step: 1, y-tick-step: 2, y-minor-tick-step: 1, axis-style: "school-book", { plot.add(domain: (-1, 2.5), x => x - 1, style: (color: red)) plot.add(domain: (-1, 2.5), x => x - 1 + calc.exp(-x), style: (color: yellow)) plot.add(domain: (-1, 2.5), x => x - 1 - calc.exp(-x), style: (color: red)) plot.add-anchor("pt1", (1,1.3)) plot.add-anchor("pt2", (1.8,-2)) plot.add-anchor("exp1", (1, calc.exp(-1)+0.2)) plot.add-anchor("exp2", (0.5, 0.5-1-calc.exp(-0.58)-0.2)) }) content("plot.pt1", [$y=t-1+e^(-t)$], anchor: "south", name: "prb") line("plot.exp1", "prb", mark: (start: ">")) content("plot.pt2", [$y=t-1-e^(-t)$], anchor: "north", name: "curve2") line("plot.exp2", "curve2", mark: (start: ">")) }) ) ///////////////////////////// #cetz.canvas(length: 1.25cm,{ import cetz.draw: * set-style( axes: ( // Basisstil beibehalten stroke: (thickness: 0.5pt), // x-Achse: stealth-Pfeil am Ende x: (mark: (end: "stealth", fill: black)), // y-Achse: stealth-Pfeil am Ende y: (mark: (end: "stealth", fill: black)), ), ) plot.plot( //definitionen name: "plot", size: (6, 10), x-tick-step: none, y-tick-step: none, axis-style: "school-book", x-label: $x$, y-label: $y$, x-ticks: ((0.5, $1/2$),(1.25, $x$),), y-ticks: ((0.25, $1/4$),(1.5625, $x^2$),), { //berechnungen und plot //let f = x => calc.pow(x, 2) //let g = x => calc.pow(x - 2,3) //let h = x => -1 *calc.pow(0.1 * g(x) -2,2) // -(0.1(x-2)^(3)-2)^(2)+6 let f = x => -1 * (calc.pow(0.1 * calc.pow((x - 2),3) -2,2)) - 0.2 let x0 = 0.5 let y0 = f(x0) let x1 = 1.25 let y1 = f(x1) // Berechnung der Steigung m = (y1 - y0) / (x1 - x0) let m = (y1 - y0) / (x1 - x0) // Sekantenfunktion: s(x) = m * (x - x0) + y0 let s = x => m * (x - x0) + y0 let x1_1 = x1 + 0.1 let x0_1 = x0 - 0.2 let y0_1 = y0 + 0.2 let x2 = ((x1 - x0)/2) + x0 let y3 = ((y1 - y0)/2) +y0 plot.add(f, samples: 300, domain: (1,3)) //plot.add(x => calc.pow(x, 2), domain: (0.5, 4)) //Sekante plot.add-anchor("pt1", (-1.4,y1)) plot.add-anchor("P", (x1_1,y1)) plot.add-anchor("P0", (x0_1,y0_1)) plot.add-anchor("F1", (x2,0.14)) plot.add-anchor("F2", (x1+0.1,y3)) plot.add(((x0, 0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) plot.add(((x1, 0), (x1, y1)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) plot.add(((0, y1), (x1, y1)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) plot.add(((0, y0), (x0, y0)), style: (stroke: (dash: "dashed", paint: gray, thickness: 0.75pt))) plot.add(((x0, y0), (x1, y0)), style: (stroke: ( paint: gray.darken(80%), thickness: 0.5pt))) plot.add(((x1, y0), (x1, y1)), style: (stroke: ( paint: gray.darken(80%), thickness: 0.5pt))) plot.add(((x0, y0),), mark: "o") plot.add(((x1, y1),), mark: "o") } ) //Der Plot muss einen Namen haben content("plot.pt1", text(0.85em)[$y=x^2$], anchor: "east", name: "pt") content("plot.P", text(0.75em)[$P$], anchor: "west", name: "p") content("plot.P0", text(0.75em)[$P_0$], anchor: "west", name: "p0") content("plot.F1", text(0.75em)[$x- 1/2$], anchor: "center", name: "f1") content("plot.F2", text(0.75em)[$x^2- 1/4$], anchor: "west", name: "f2") }) #import "@preview/cetz:0.4.2": canvas #import "@preview/cetz-plot:0.1.3": plot #let theta = 45 * calc.pi / 180 #let c = calc.cos(theta) #let s = calc.sin(theta) #canvas({ import cetz.draw: * plot.plot( size: (12, 8), axis-style: "school-book", x-min: -8, x-max: 12, y-min: -3, y-max: 9, x-tick-step: 2, y-tick-step: 1, // Original plot.add(x => { let u = x - 2 calc.pow( -(0.1 * calc.pow(u, 3) - 2), 2) + 6 }, domain: (0, 4), style: (stroke: (paint: blue, thickness: 1pt)), samples: 300), // Rotierter Graph: Sampling über x_old und Rotation plot.add(x_old => { let u = x_old - 2 let y_old = calc.pow( -(0.1 * calc.pow(u, 3) - 2), 2) + 6 let x_new = x_old * c - y_old * s let y_new = x_old * s + y_old * c (x_new, y_new) }, domain: (-1, 9), style: (stroke: (paint: red, thickness: 3pt))), ) }) #import "@preview/cetz:0.4.2": canvas #import "@preview/cetz-plot:0.1.3": plot #let theta = -45 * calc.pi / 180 // 45 Grad für deutlichen Effekt #let c = calc.cos(theta) #let s = calc.sin(theta) #canvas({ import cetz.draw: * plot.plot( size: (14, 10), axis-style: "school-book", x-min: -10, x-max: 15, y-min: -5, y-max: 12, x-tick-step: 2, y-tick-step: 2, // Original plot.add(x => { let u = x - 2 calc.pow( -(0.1 * calc.pow(u, 3) - 2), 2) + 6 }, domain: (-3, 9), style: (stroke: (paint: blue, thickness: 3pt))), // Rotierter Graph: Erweiterte Domain für x_old plot.add(x_old => { let u = x_old - 2 let y_old = calc.pow( -(0.1 * calc.pow(u, 3) - 2), 2) + 6 x_old * c - y_old * s // Plotte x_new vs x_old (parametrisch projiziert) }, domain: (-5, 11), style: (stroke: (paint: red, thickness: 3pt))), // Y_new vs x_old für vollständige Rotation (grün) plot.add(x_old => { let u = x_old - 2 let y_old = calc.pow( -(0.1 * calc.pow(u, 3) - 2), 2) + 6 x_old * s + y_old * c // y_new }, domain: (-5, 11), style: (stroke: (paint: green, thickness: 2pt))), ) }) #import "@preview/cetz:0.4.2": canvas #import "@preview/cetz-plot:0.1.3": plot #let theta = 15deg #let f = x => { let u = x - 7 calc.pow(-(0.005 * calc.pow(u, 3) + 2), 2) } #canvas({ import cetz.draw: * // Original plot.plot( size: (14, 10), axis-style: "school-book", x-min: -12, x-max: 16, y-min: -8, y-max: 14, x-tick-step: 4, y-tick-step: 2, { plot.add( domain: (-4, 12), f,samples: 400, style: (stroke: (paint: blue, thickness: 3pt)), ) } ) // Rotierter zweiter Graph, ohne zweite Achsen group({ rotate(theta, origin: (0, 0)) plot.plot( size: (14, 10), axis-style: none, x-min: -12, x-max: 16, y-min: -8, y-max: 14, { plot.add( domain: (-4, 12), f, samples: 400, style: (stroke: (paint: red, thickness: 3pt)), ) } ) }) }) //orig #import "@preview/cetz:0.4.2": canvas #import "@preview/cetz-plot:0.1.3": plot #let theta = 45deg #let f = x => { let u = x - 2 calc.pow(-(0.1 * calc.pow(u, 3) - 2), 2) + 6 } #canvas({ import cetz.draw: * // Original plot.plot( size: (14, 10), axis-style: "school-book", x-min: -12, x-max: 16, y-min: -8, y-max: 14, x-tick-step: 4, y-tick-step: 2, { plot.add( domain: (-4, 12), f, style: (stroke: (paint: blue, thickness: 3pt)), ) } ) // Rotierter zweiter Graph, ohne zweite Achsen group({ rotate(theta, origin: (0, 0)) plot.plot( size: (14, 10), axis-style: none, x-min: -12, x-max: 16, y-min: -8, y-max: 14, { plot.add( domain: (-4, 12), f, style: (stroke: (paint: red, thickness: 3pt)), ) } ) }) })