Stabreihen

Schritt

Zurücksetzen

Neue Kugel

Dauerschleife

Ende eines Durchlaufs

Geschwindigkeit

(Rechtswahrsch.) p

nagelAbstandY = 0.7 (slider from -5 to 5)
haeufigkeiten: {0,1,9,48,120,209,244,221,107,36,5}
diagrammFaktor: (ceil(Max[haeufigkeiten] / 10) * 10)
diagrammHoehe: 2
diagrammBalkenbreite: 0.5
diagrammAbstandY: 2
brettUrsprung: (7, 4)
anzahlReihen = 11 (slider from 2 to 11, step 1)
nagelAbstandX: (sqrt(2) * nagelAbstandY)
naegel = Zip(Zip[brettUrsprung + ((nagelAbstandX * (nagelZahl - reihe / 2)), ((-reihe) * nagelAbstandY)), nagelZahl, 0…reihe], reihe, 0…(anzahlReihen - 1))
diagrammAnkerpunkte = Zip(P - (0, diagrammAbstandY), P, naegel(-1))
nagelRadius: 0.1
kugelRadius: 0.15
pfadIndizes: {1,1,2,2,2,3,3,4,5,6,6}
kugelDeltaY = 0.53 (slider from -5 to 5)
pfadPunkte = Zip((0, nagelRadius + kugelRadius) + naegel(reihe, pfadInd), reihe, 1…Length[pfadIndizes], pfadInd, pfadIndizes)
Text1 = LaTeX(pfadIndizes, true, true)
pfadVollstaendig: Length[pfadIndizes] ≥ anzahlReihen
Text2 = LaTeX(pfadPunkte, true, true)
deltas: {0,1,0,0,1,0,1,1,1,0}
Text3 = LaTeX(pfadVollstaendig, true, true)
Text4 = LaTeX(deltas, true, true)
laengeKachelX = 1 (slider from -5 to 5)
kachelnUrsprung = (8, -5)
kacheln = Zip(Polygon[Zip[kachelnUrsprung + (i * (laengeKachelX, 0)) + (laengeKachelX * delta), delta, {(0, 0), (1, 0), (1, 1), (0, 1)}]], i, 0…(Length[pfadIndizes] - 2))
kachelnLinks = Zip(If[pfadInd1 ≟ pfadInd2, kachel], kachel, kacheln, pfadInd2, Take[pfadIndizes, 2], pfadInd1, Take[pfadIndizes, 1, Length[pfadIndizes] - 1])
kachelnRechts = Zip(If[pfadInd2 > pfadInd1, kachel], kachel, kacheln, pfadInd2, Take[pfadIndizes, 2], pfadInd1, Take[pfadIndizes, 1, Length[pfadIndizes] - 1])
anteilZurueckgelegterWeg = 1 (slider from 0 to 1, step 0.0001)
aktuelleWegstreckeIndex: floor(((anzahlReihen - 1) * anteilZurueckgelegterWeg)) + 1
anteilAufWegstrecke: (Mod[anteilZurueckgelegterWeg, 1 / (anzahlReihen - 1)] * (anzahlReihen - 1))
spur = Zip(Circle[P, kugelRadius], P, Take[pfadPunkte, 1, aktuelleWegstreckeIndex])
animierteKugel = Circle(((1 - anteilAufWegstrecke) * pfadPunkte(aktuelleWegstreckeIndex)) + (anteilAufWegstrecke * pfadPunkte(aktuelleWegstreckeIndex + 1)), kugelRadius)
pfadLinie = Take(Zip[Vector[punkt1 + (kugelRadius * (punkt2 - punkt1) / Length[punkt2 - punkt1]), punkt2 - (kugelRadius * (punkt2 - punkt1) / Length[punkt2 - punkt1])], punkt2, Take[pfadPunkte, 2], punkt1, Take[pfadPunkte, 1, Length[pfadPunkte] - 1]], 1, Min[aktuelleWegstreckeIndex, anzahlReihen - 1])
sichtbareNaegel = Zip(Circle[P, nagelRadius], P, Join[Take[naegel, 1, Max[anzahlReihen - 1, 0]]])
dauerschleife = false
diagrammHoehen = Zip((diagrammHoehe * haeufigkeit / diagrammFaktor), haeufigkeit, haeufigkeiten)
diagramm = Zip(Polygon[Zip[P + v, v, {(((-diagrammBalkenbreite)) / 2, 0), (((-diagrammBalkenbreite)) / 2, hoehe), (diagrammBalkenbreite / 2, hoehe), (diagrammBalkenbreite / 2, 0)}]], P, diagrammAnkerpunkte, hoehe, diagrammHoehen)
diagrammBoxUntenLinks: (x(diagrammAnkerpunkte(1)) - diagrammBalkenbreite / 2, y(diagrammAnkerpunkte(1)))
diagrammBoxObenRechts: (x(diagrammAnkerpunkte(-1)) + diagrammBalkenbreite / 2, y(diagrammAnkerpunkte(-1)) + diagrammHoehe)
diagrammBox, diagrammboxuntenlinks, f, diagrammboxobenrechts, g = Polygon(diagrammBoxUntenLinks, (x(diagrammBoxUntenLinks), y(diagrammBoxObenRechts)), diagrammBoxObenRechts, (x(diagrammBoxObenRechts), y(diagrammBoxUntenLinks)))
geschwindigkeitBewegung = 10.4 (slider from 1 to 100)
diagrammBeschriftungY = If(Sum[haeufigkeiten] > 0, Zip[Text[wert, position + diagrammBoxUntenLinks, true, false, -1, 0], wert, {0, diagrammFaktor}, position, {(0, 0), (0, diagrammHoehe)}])
diagrammBeschriftungX = If(Sum[haeufigkeiten] > 0, Zip[Text[wert, position, true, false, 0, -1], wert, 0…anzahlReihen, position, diagrammAnkerpunkte])
haeufigkeitenAbstandY: 0.5
diagrammRelativeHaeufigkeiten = If(Sum[haeufigkeiten] > 0, Zip[Text[haeufigkeit / Sum[haeufigkeiten], position - (0, haeufigkeitenAbstandY), true, true, 0, -1], haeufigkeit, haeufigkeiten, position, diagrammAnkerpunkte])
wahrscheinlichkeitRechts = 0.6 (slider from 0 to 1, step 0.01)
diagrammAbsoluteHaeufigkeiten = If(Sum[haeufigkeiten] > 0, Zip[If[haeufigkeit > 0, Text[haeufigkeit, position + (0, hoehe / 2), true, false, 0, 0]], haeufigkeit, haeufigkeiten, position, diagrammAnkerpunkte, hoehe, diagrammHoehen])