Hallo Robert,
ich kenne zwar nicht den "Algorithmus dahinter", aber ich meine, da
liegt ein "klassischer Programmierfehler" - Division durch 0 wird nicht
abgefangen - vor.
Zur Veranschaulichung: Datei "Bug 150743.odg" => Download:
https://magentacloud.de/s/5b6NREb8kFboGwP
[1] Eine beliebige Linie in einem X/Y-Koordinatensystem wird durch ihre
2 Endpunkte X1/Y1 und X2/Y2 bestimmt.
[2] Mit Hilfe dieser 2 Eckpunkte kann man auch ein (virtuelles) Rechteck
bestimmen/zeichnen.
[3] Das (virtuelle) Rechteck benötigt man, um ein Seitenverhältnis
berechnen zu können.
[4] Die Werte von "Breite:" und "Höhe:" (unterhalb von "Position und
Größe") beziehen sich auf das (virtuelle) Rechteck:
[4.1] Bei einer vertikalen Linie hat das (virtuelle) Rechteck eine
Breite von 0.
[4.2] Bei einer horizontalen Linie hat das (virtuelle) Rechteck eine
Höhe von 0.
[4.3] In diesen beiden Fällen ([4.1]+[4.2]) kann man keine
Seitenverhältnis-Berechnung mehr durchführen, weil man dann - bei dem
aktuellen "Algorithmus dahinter" eine "Division durch 0" erhält, die in
der Regel in Programmen immer undefinierte Zustände verursacht, wenn sie
nicht "abgefangen" wird. Habe ich zu Beginn meiner früheren
Berufstätigkeit als "blutiger Programmieranfänger" selbst oft erfahren
dürfen verbunden mit stundenlanger Fehlersuche ;-))
So weit, so gut. Jetzt muss man 2 Eingabe-Situationen - "Mausaktion"
oder "Zahleneingabe" - unterscheiden, mit der die Linie verändert wird:
[0] "Seitenverhältnis beibehalten" sei aktiviert.
[1] Die Linie mit der Maus "anfassen" und verändern.
[1.1] Damit kann man die Linie verändern wie man "lustig" ist. Bei
"Breite:" und "Höhe:" (unterhalb von "Position und Größe") werden die
korrekten Werte des (virtuellen) Rechtecks angezeigt
[1.2] Die dann angezeigten Werte ("Breite:" und "Höhe:") werden
(offensichtlich) aus den X/Y-Koordinaten der (virtuellen)
X/Y-Zeichenfläche bestimmt und zur Anzeige gebracht und nicht aus den
"Breite:"/"Höhe:"-Zahlenangaben berechnet
[1.3] Bezüglich "Breite:" und "Höhe:" besteht eine
Werte-AUSGABE-Situation.
[2] Die Linie durch Zahleneingaben ("Breite:" und "Höhe:" (unterhalb von
"Position und Größe")) verändern.
[2.1] So lange die Eingabe für "Breite:" oder "Höhe:" nicht 0 ist,
funktioniert alles prima, denn dann hat man immer ein (virtuelles)
Rechteck, mit Hilfe dessen man das Seitenverhältnis berechnen kann. Es
gibt keine "Division durch 0", da keine Rechteckseite (Breite oder Höhe)
0 ist.
[2.2] Bei einer vertikalen oder horizontalen Linie wird die Länge einer
Seite des (virtuelles) Rechtecks 0 mit der Folge, dass bei der
Seitenverhältnis-Berechnung eine "Division durch 0" statt findet und der
weiteren Folge, dass der Algorithmus in einen undefinierten/fehlerhaften
Zustand gerät.
[2.3] Bezüglich "Breite:" und "Höhe:" besteht eine
Werte-EINGABE-Situation.
Die Aussage von JBF "In the case where "Keep ratio" is checked, we just
have a special case here that involves a division by zero." bezieht sich
auf das, was ich mit [2.2] kommuniziert habe. Warum er das nicht als BUG
bezeichnet, dass die "division by zero" nicht abgefangen wird, keine
Ahnung ...
Da ich den "Algorithmus dahinter" nicht kenne, muss das von mir
Kommunizierte nicht stimmen, aber zumindest erscheint es doch "recht
schlüssig", widerspruchsfrei und nachvollziehbar.
Grüße
Hans-Werner;-))
------ Originalnachricht ------
Von "Robert Großkopf" <robert@familiegrosskopf.de>
An users@de.libreoffice.org
Datum 08.10.2022 21:08:43
Betreff Re: [de-users] Draw-Bug mit horizontalen Linien
Hallo Hans-Werner,
https://bugs.documentfoundation.org/show_bug.cgi?id=150743#c16
Ich halte mich da jetzt raus. Da sollen einmal Leute etwas zu sagen, die auch mit Draw häufiger
arbeiten. Mit den vielen Kommentaren blickt irgendwann niemand mehr durch, was denn nun der Bug
ist. Worauf sich der letzte Kommentar von JBF bezieht kann ich schon nicht mehr sagen.
Gruß
Robert
-- Homepage: https://www.familiegrosskopf.de/robert
-- Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.