reset button added, closes #1, small bug fixes

This commit is contained in:
Daniel Spittank 2023-09-16 14:34:55 +02:00
parent a28ae18444
commit 752948acc5

View file

@ -53,6 +53,13 @@
{{ animation_speed }} ms {{ animation_speed }} ms
</div> </div>
<br />
<div>
<button class="btn btn-primary" @click="szenario_zuruecksetzen">
Szenario zurücksetzen
</button>
</div>
<br /> <br />
<div style="width: 800px; margin: auto"> <div style="width: 800px; margin: auto">
@ -63,15 +70,15 @@
<div class="row"> <div class="row">
<div class="column"> <div class="column">
{{ this.bezeichnung_aktueller_datenpunkt }}: {{ this.bezeichnung_aktueller_datenpunkt }}:
<button class="btn btn-primary" @click="voriges_datenpunkt">-</button> <button class="btn btn-primary" @click="voriger_datenpunkt">-</button>
&nbsp;<b style="font-size: x-large">{{ aktueller_datenpunkt }}</b &nbsp;<b style="font-size: x-large">{{ aktueller_datenpunkt }}</b
>&nbsp; >&nbsp;
<button class="btn btn-primary" @click="naechstes_datenpunkt"> <button class="btn btn-primary" @click="naechster_datenpunkt">
+ +
</button> </button>
</div> </div>
<div class="column"> <div class="column">
{{ this.r }}: {{ this.bezeichnung_aktueller_prototyp }}:
<!-- <button @click="voriger_prototyp">-</button> --> <!-- <button @click="voriger_prototyp">-</button> -->
<b style="font-size: x-large">{{ aktueller_prototyp }}</b> <b style="font-size: x-large">{{ aktueller_prototyp }}</b>
<!-- <button @click="naechster_prototyp">+</button> --> <!-- <button @click="naechster_prototyp">+</button> -->
@ -168,7 +175,7 @@
</option> </option>
<option value="kein_bild">reine Datenansicht</option> <option value="kein_bild">reine Datenansicht</option>
</select> </select>
</div>> </div>
<br /> <br />
</div> </div>
</div> </div>
@ -237,6 +244,12 @@ export default {
{ x: 120, y: 150, color: "blue" }, { x: 120, y: 150, color: "blue" },
], ],
prototypen_original: [
{ x: 540, y: 50, color: "blue" },
{ x: 380, y: 370, color: "blue" },
{ x: 120, y: 150, color: "blue" },
],
canvas: null, canvas: null,
vueCanvas: null, vueCanvas: null,
aktueller_datenpunkt: 0, aktueller_datenpunkt: 0,
@ -409,6 +422,8 @@ export default {
} }
}, },
update_anzahl_prototypen(new_value) { update_anzahl_prototypen(new_value) {
// Original Prototypen laden
this.prototypen = JSON.parse(JSON.stringify(this.prototypen_original))
if (new_value >= 0) { if (new_value >= 0) {
console.log("angekommen." + new_value); console.log("angekommen." + new_value);
this.anzahl_prototypen = new_value; this.anzahl_prototypen = new_value;
@ -418,15 +433,20 @@ export default {
} }
while (this.prototypen.length < this.anzahl_prototypen) { while (this.prototypen.length < this.anzahl_prototypen) {
let neue_prototyp = this.generiere_prototyp_zufaellig(); let neuer_prototyp = this.generiere_prototyp_zufaellig();
this.prototypen.push(neue_prototyp); this.prototypen.push(neuer_prototyp);
} }
//this.update_zeichnung_child_component(); //this.update_zeichnung_child_component();
// this.datensatz_2_textarea(); // this.datensatz_2_textarea();
this.refresh(); this.refresh();
} else { } else {
this.anzahl_prototypen = 0; this.anzahl_prototypen = 0;
while (this.prototypen.length > this.anzahl_prototypen) {
this.prototypen.pop();
} }
}
// Original Prototypen merken
this.prototypen_original = JSON.parse(JSON.stringify(this.prototypen))
}, },
/* /*
update_zeichnung_child_component() { update_zeichnung_child_component() {
@ -483,7 +503,7 @@ export default {
} }
}, },
farben_anpassen(alle) { faerbe_datenpunkte(alle) {
for (let i = 0; i < this.datenpunkte.length; i++) { for (let i = 0; i < this.datenpunkte.length; i++) {
if (alle || i < this.aktueller_datenpunkt) { if (alle || i < this.aktueller_datenpunkt) {
let next_prototyp = this.gib_naechstgelegener_prototyp(this.datenpunkte[i]); let next_prototyp = this.gib_naechstgelegener_prototyp(this.datenpunkte[i]);
@ -560,7 +580,7 @@ export default {
this.vueCanvas.stroke(); this.vueCanvas.stroke();
}, },
zeichne_linie_datenpunkt_naechstgelegene_prototyp(datenpunkt) { zeichne_linie_datenpunkt_naechstgelegener_prototyp(datenpunkt) {
let farbe = "red"; let farbe = "red";
let staerke = 2; let staerke = 2;
let prototyp = this.gib_naechstgelegener_prototyp(datenpunkt); let prototyp = this.gib_naechstgelegener_prototyp(datenpunkt);
@ -663,14 +683,14 @@ export default {
i++; i++;
}); });
}, },
naechstes_datenpunkt() { naechster_datenpunkt() {
if (this.aktueller_datenpunkt < this.datenpunkte.length - 1) { if (this.aktueller_datenpunkt < this.datenpunkte.length - 1) {
this.aktueller_datenpunkt++; this.aktueller_datenpunkt++;
this.refresh(); this.refresh();
this.zeichne_datenpunkte(true, true); this.zeichne_datenpunkte(true, true);
} }
}, },
voriges_datenpunkt() { voriger_datenpunkt() {
if (this.aktueller_datenpunkt > 0) { if (this.aktueller_datenpunkt > 0) {
this.aktueller_datenpunkt--; this.aktueller_datenpunkt--;
this.refresh(); this.refresh();
@ -761,7 +781,7 @@ export default {
} }
}, },
kurz_zeichne_linie_datenpunkt_naechstgelegene_prototyp() { kurz_zeichne_linie_datenpunkt_naechstgelegener_prototyp() {
this.zeichne_linie_datenpunkt_prototyp( this.zeichne_linie_datenpunkt_prototyp(
this.akt_datenpunkt, this.akt_datenpunkt,
this.naechstgelegener_prototyp, this.naechstgelegener_prototyp,
@ -778,7 +798,7 @@ export default {
await this.starte_animation(); await this.starte_animation();
} }
this.farben_anpassen(true); this.faerbe_datenpunkte(true);
this.loesche_zeichenflaeche(); this.loesche_zeichenflaeche();
this.zeichne_hintergrund(); this.zeichne_hintergrund();
@ -803,7 +823,7 @@ export default {
let alle_prototypen_verarbeitet = false; let alle_prototypen_verarbeitet = false;
while (!alle_prototypen_verarbeitet) { while (!alle_prototypen_verarbeitet) {
this.zeichne_hintergrund(); this.zeichne_hintergrund();
this.farben_anpassen(false); this.faerbe_datenpunkte(false);
if (this.aktueller_prototyp == 0) { if (this.aktueller_prototyp == 0) {
this.zeichne_datenpunkte(false, true); this.zeichne_datenpunkte(false, true);
@ -832,7 +852,7 @@ export default {
// Schlussbild // Schlussbild
this.loesche_zeichenflaeche(); this.loesche_zeichenflaeche();
this.farben_anpassen(false); this.faerbe_datenpunkte(false);
this.zeichne_datenpunkte(false, true); this.zeichne_datenpunkte(false, true);
this.zeichne_prototypen(false); this.zeichne_prototypen(false);
@ -849,7 +869,7 @@ export default {
// Simulate some delay (you can replace this with actual animation code) // Simulate some delay (you can replace this with actual animation code)
setTimeout(() => { setTimeout(() => {
resolve(); // Resolve the promise when the animation is done resolve(); // Resolve the promise when the animation is done
}, zeitspanne); // 1-second delay }, zeitspanne); // delay for zeitspanne
}); });
}, },
@ -874,7 +894,7 @@ export default {
return new Promise((resolve) => { return new Promise((resolve) => {
// Your animation code here // Your animation code here
if (this.naechstgelegener_prototyp != null && this.akt_datenpunkt != null) { if (this.naechstgelegener_prototyp != null && this.akt_datenpunkt != null) {
this.kurz_zeichne_linie_datenpunkt_naechstgelegene_prototyp(); this.kurz_zeichne_linie_datenpunkt_naechstgelegener_prototyp();
this.zeichne_datenpunkte(true, true); this.zeichne_datenpunkte(true, true);
this.zeichne_prototypen(true); this.zeichne_prototypen(true);
} }
@ -888,7 +908,7 @@ export default {
aktualisiere_pos_prototyp() { aktualisiere_pos_prototyp() {
return new Promise((resolve) => { return new Promise((resolve) => {
this.farben_anpassen(false); this.faerbe_datenpunkte(false);
this.animieren(); this.animieren();
setTimeout(() => { setTimeout(() => {
@ -921,7 +941,7 @@ export default {
this.loesche_zeichenflaeche(); this.loesche_zeichenflaeche();
this.zeichne_hintergrund(); this.zeichne_hintergrund();
this.kurz_zeichne_linie_datenpunkt_naechstgelegene_prototyp(); this.kurz_zeichne_linie_datenpunkt_naechstgelegener_prototyp();
this.zeichne_datenpunkte(true, true); this.zeichne_datenpunkte(true, true);
this.zeichne_prototypen(true); this.zeichne_prototypen(true);
@ -946,6 +966,25 @@ export default {
// Zeichnen aufrufen // Zeichnen aufrufen
draw(); draw();
}, },
szenario_zuruecksetzen() {
this.update_anzahl_datenpunkte(this.anzahl_datenpunkte);
this.update_anzahl_prototypen(this.anzahl_prototypen);
this.aktueller_datenpunkt = 0;
for (let i = 0; i < this.datenpunkte.length; i++) {
let next_prototyp = this.gib_naechstgelegener_prototyp(this.datenpunkte[i]);
this.datenpunkte[i].color = "#000000";
}
this.loesche_zeichenflaeche();
this.refresh();
this.zeichne_hintergrund();
this.zeichne_prototypen(false);
this.zeichne_datenpunkte(false, true);
console.log("Page completed with image and files!");
},
}, },
mounted() { mounted() {