Author: Roman Chijner, Heidelberg
Date: 2012

hin/her

ein/aus

f2 ein/aus

Ebene: z = m_0

f1(x,y,z) = :

R_z

R_y

R_x

Refresh

Achsen

Färbung: listenweise / punktweise

orthogonale - Projektion

II←t

Animation

Box

x

y

z

Grenzen:        min:               max:     Skalierung:

f2(x,y,z) = :

► Winkellage:

► 

►

Rot1

Grün1

Blau1

x:

y:

z:

► 

Farbwahl:

x_{min}= :

y_{min}= :

z_{min}= :

x_{max}= :

y_{max}= :

z_{max}= :

Δt = :

Auflösung (≤ 500) N_P = :

v_t = :

Zoom

Rot2

Blau2

Grün2

f1 ein/aus

Zoom

\scalebox{1.3}\text{3D-Plotter für implizite Funktionen (4)}

$\scalebox{1.4} \text{\copyright Roman Chijner, Heidelberg 2012}$
$\scalebox{1.3} \text{     Gestaltungshilfe:}\scalebox{1.3}\text{ Werner Knobloch}$

►

listenweise

punktweise

Plott hier nur als x-Schichtung (hin/her)

►

►

t = :

Funktionseingabe: zwei Oberflächen gleichzeitig mit zusätzlicher Schnittebene 

Refresh

Input:

x

y

z

heh = true
N_P = 200 (slider from 0 to 500, step 10)
b = false
N_1 = If(b, N_P, 4)
t = -3.3 (slider from x_{min} to x_{max}, step Δt)
y_{min} = -3.3 (slider from -15 to 15, step 0.1)
y_{max} = 3.3 (slider from -15 to 15, step 0.1)
y1 = Sequence(y_{min} + (y_{max} - y_{min}) / N_1 * i, i, 0, N_1)
x_{min} = -3.3 (slider from -15 to 15, step 0.1)
x_{max} = 3.3 (slider from -15 to 15, step 0.1)
xM: x_{min} + x_{max}
tt = If(heh, t, xM - t)
B = (-0.11610230812343966, 0.008041095241906568)
γ = 0 (slider from 0 to 6.283185307179586, step 0.1)
β = 0 (slider from 0 to 6.283185307179586, step 0.1)
α = 0.8 (slider from 0 to 6.283185307179586, step 0.1)
P13: ((-cos(α) * sin(β) * cos(γ) - sin(α) * sin(γ)) / sqrt(8) + sin(α) * sin(β) * cos(γ) - cos(α) * sin(γ), (-cos(α) * sin(β) * cos(γ) - sin(α) * sin(γ)) / sqrt(8) + cos(β) * cos(γ))
P12: ((-cos(α) * sin(β) * sin(γ) + sin(α) * cos(γ)) / sqrt(8) + sin(α) * sin(β) * sin(γ) + cos(α) * cos(γ), (-cos(α) * sin(β) * sin(γ) + sin(α) * cos(γ)) / sqrt(8) + cos(β) * sin(γ))
P11: ((-cos(α) * cos(β)) / sqrt(8) + sin(α) * cos(β), (-cos(α) * cos(β)) / sqrt(8) - sin(β))
r_x = 1 (slider from -5 to 5, step 0.1)
r_y = 1 (slider from -5 to 5, step 0.1)
r_z = 1 (slider from -5 to 5, step 0.1)
zWX11: {x_{max}, x_{max}, x_{min}, x_{min}, x_{max}, x_{max}, x_{min}, x_{min}, x_{max}, 0, 0}
z_{min} = -3.3 (slider from -10 to 15, step 0.1)
z_{max} = 3.3 (slider from -15 to 15, step 0.1)
zWZ11: {z_{max}, z_{max}, z_{max}, z_{max}, z_{min}, z_{min}, z_{min}, z_{min}, 0, 0, z_{max}}
zWY11: {y_{min}, y_{max}, y_{max}, y_{min}, y_{min}, y_{max}, y_{max}, y_{min}, 0, y_{max}, 0}
g1(x, y, z) = cos(x) + cos(y) + cos(z)
f1(x, y) = g1(t, x, y)
zy1 = If(b, x(Sequence[RemoveUndefined[{Roots[f1(Element[y1, i], x), z_{min}, z_{max}]}], i, 1, N_1 + 1]), {{1}})
Pa1 = Join(Sequence[Sequence[(Element[y1, i], Element[Element[zy1, i], j]), j, 1, Length[Element[zy1, i]]], i, 1, N_1 + 1])
z1 = Sequence(z_{min} + (z_{max} - z_{min}) / N_1 * i, i, 0, N_1)
zx1 = If(b, x(Sequence[RemoveUndefined[{Roots[f1(x, Element[z1, i]), y_{min}, y_{max}]}], i, 1, N_1 + 1]), {{1}})
Pb1 = Join(Sequence[Sequence[(Element[Element[zx1, i], j], Element[z1, i]), j, 1, Length[Element[zx1, i]]], i, 1, N_1 + 1])
Pab1 = If(b, Sort[Join[{Pa1, Pb1}]], {(1000, 1000)})
xm: x_{max} - x_{min}
Farbe1a: Sequence[x(Element[Pab1, i]) - y_{min}, i, 1, Length[Pab1]] / (y_{max} - y_{min})
c = true
g2(x, y, z) = (x^(2) + y^(2) - 1.8) * (x^(2) - y^(2) - 1.8)
f2(x, y) = g2(t, x, y)
zx2 = If(b ∧ c, x(Sequence[RemoveUndefined[{Roots[f2(x, Element[z1, i]), y_{min}, y_{max}]}], i, 1, N_1 + 1]), {{1}})
Z_P = Sequence((tt, Element[y1, i]), i, 1, N_1 + 1)
d = true
m_x = 0 (slider from -5 to 5, step 0.1)
m_y = 0 (slider from -5 to 5, step 0.1)
m_0 = -2.3 (slider from -5 to 5, step 0.1)
fA(x, y) = m_x * x + m_y * y + m_0
Textfeld1 = Textfield(g1)
v_{Animation} = 0.05 (slider from 0 to 1, step 0.001)
fz_1 = false
iz = true
fy = false
Δt = 0.002 (slider from 0 to 0.02, step 0.001)
a = false
mx = 1
zTT1: Sequence[P11 * Element[zWX11, i] * r_x + P12 * Element[zWY11, i] * r_y + P13 * Element[zWZ11, i] * r_z, i, 1, 11] + B
Strecke3 = Sequence(Segment[Element[zTT1, i], Element[zTT1, i + 4]], i, 1, 4)
Strecke4 = Sequence(Segment[Element[zTT1, i], Element[zTT1, i + 3]], i, 1, 5, 4)
Strecke1 = Sequence(Segment[Element[zTT1, i], Element[zTT1, i + 1]], i, 1, 3)
Strecke2 = Sequence(Segment[Element[zTT1, i], Element[zTT1, i + 1]], i, 5, 7)
Achse3 = Ray(B, Element[zTT1, 11])
Achse2 = Ray(B, Element[zTT1, 10])
Achse1 = Ray(B, Element[zTT1, 9])
hh = false
v_x = Vector(B, Element[zTT1, 9])
v_y = Vector(B, Element[zTT1, 10])
v_z = Vector(B, Element[zTT1, 11])
max = If(iz, 1, Length[Pab1])
ZA_P = If(d, Sequence[fA(x(Element[Z_P, i]), y(Element[Z_P, i])), i, 1, N_1 + 1], {10000})
Pb2 = If(c, Join[Sequence[Sequence[(Element[Element[zx2, i], j], Element[z1, i]), j, 1, Length[Element[zx2, i]]], i, 1, N_1 + 1]], {(10000, 10000)})
Textfeld2 = Textfield(g2)
Farbe2a = Sequence(sin(π * (t - x_{min}) / xm * Element[Farbe1a, i]), i, 1, Length[Pab1])
PTyp = 6 (slider from 1 to 10, step 1)
Farbe3a: Sequence[y(Element[Pab1, i]) - z_{min}, i, 1, Length[Pab1]] / (z_{max} - z_{min})
Rt1 = true
Gr1 = true
Bl1 = true
Rot1 = 1 (slider from 0 to 1, step 0.1)
Grün1 = 1 (slider from 0 to 1, step 0.1)
Blau1 = 1 (slider from 0 to 1, step 0.1)
Farbx1: If[PTyp ≟ 1, Farbe2a, If[PTyp ≟ 2, Farbe2a, If[PTyp ≟ 3, Farbe1a, If[PTyp ≟ 4, Farbe1a, If[PTyp ≟ 5, Farbe3a, If[PTyp ≟ 6, Farbe3a, If[PTyp ≟ 7, sin(t), If[PTyp ≟ 8, sin(t), If[PTyp ≟ 9, sin(x(Pab1)), sin(y(Pab1))]]]]]]]]] * Blau1 * Bl1
Farby1: If[PTyp ≟ 1, Farbe3a, If[PTyp ≟ 2, Farbe1a, If[PTyp ≟ 3, Farbe3a, If[PTyp ≟ 4, Farbe2a, If[PTyp ≟ 5, Farbe2a, If[PTyp ≟ 6, Farbe1a, If[PTyp ≟ 7, sin(y(Pab1)), If[PTyp ≟ 8, sin(x(Pab1)), If[PTyp ≟ 9, sin(x(Pab1)), sin(y(Pab1))]]]]]]]]] * Grün1 * Gr1
Farbz1: If[PTyp ≟ 1, Farbe1a, If[PTyp ≟ 2, Farbe3a, If[PTyp ≟ 3, Farbe2a, If[PTyp ≟ 4, Farbe3a, If[PTyp ≟ 5, Farbe1a, If[PTyp ≟ 6, Farbe2a, If[PTyp ≟ 7, sin(x(Pab1)), If[PTyp ≟ 8, sin(y(Pab1)), If[PTyp ≟ 9, Sequence[sin(t), i, 1, max], sin(t)]]]]]]]]] * Rot1 * Rt1
f = false
Pab1': Sequence[P11 * tt * r_x + P12 * x(Element[Pab1, i]) * r_y + P13 * y(Element[Pab1, i]) * r_z, i, 1, Length[Pab1]] + B
Pex = Element(Pab1', mx)
inputBox1 = Textfield(x_{min})
inputBox10 = Textfield(y_{min})
inputBox11 = Textfield(z_{min})
inputBox12 = Textfield(x_{max})
inputBox13 = Textfield(y_{max})
inputBox14 = Textfield(z_{max})
inputBox15 = Textfield(Δt)
inputBox16 = Textfield(N_P)
inputBox17 = Textfield(v_{Animation})
SFactor1 = 1 (slider from 0.5 to 2, step 0.1)
Rot2 = 1 (slider from 0 to 1, step 0.1)
Blau2 = 1 (slider from 0 to 1, step 0.1)
Grün2 = 1 (slider from 0 to 1, step 0.1)
Rt2 = true
Bl2 = true
Gr2 = true
zy2 = If(b ∧ c, x(Sequence[RemoveUndefined[{Roots[f2(Element[y1, i], x), z_{min}, z_{max}]}], i, 1, N_1 + 1]), {{1}})
Pa2 = Join(Sequence[Sequence[(Element[y1, i], Element[Element[zy2, i], j]), j, 1, Length[Element[zy2, i]]], i, 1, N_1 + 1])
Pab2 = If(b, Sort[Join[{Pa2, Pb2}]], {(1000, 1000)})
mx2: (t - x_{min}) / xm
g = true
PPZA' = If(d, Sequence[P11 * x(Element[Z_P, i]) * r_x + P12 * y(Element[Z_P, i]) * r_y + P13 * Element[ZA_P, i] * r_z, i, 1, N_1 + 1] + B, {(10000, 10000)})
SFactor2 = 1 (slider from 0.5 to 2, step 0.1)
Text10a: "Intervall_X = [" + x_{min} + "," + x_{max} + "]
Intervall_Y = [" + y_{min} + "," + y_{max} + "]
Intervall_Z = [" + z_{min} + "," + z_{max} + "]
x-Schichtung(" + (If[heh, "hin", "her"]) + ")
x=" + (If[heh, t, tt]) + "
 α = " + α + "→ " + (α * 180 / π) + "°
 β = " + β + " → " + (β * 180 / π) + "° 
 γ = " + γ + " → " + (γ * 180 / π) + "° 
 p = " + ((t - x_{min}) / (x_{max} - x_{min}) * 100) + "%
 PTyp = " + (If[iz, 0, PTyp]) + "
 " + (If[iz, listenweise, punktweise]) + ""
Autor2: "" + (LaTeX[Autor1]) + ""
Textfeld3 = Textfield(t)
Text8: "" + Text10a + ""
Pab2': Sequence[P11 * tt * r_x + P12 * x(Element[Pab2, i]) * r_y + P13 * y(Element[Pab2, i]) * r_z, i, 1, Length[Pab2]] + B
Text14 = If(g ∧ c, "" + g1 + " = 0 ∧ " + g2 + " = 0", If[c, "" + g2 + " = 0", "" + g1 + " = 0"])
Text16: "\scalebox{1.1}{     " + (LaTeX[Text14]) + " }"
Text17: "\scalebox{1.1}{  " + (LaTeX[Text14]) + "     }"