PB4.41 Linien mit 2D-Drawing

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

PB4.41 Linien mit 2D-Drawing

Beitrag von dllfreak2001 »

Ich denke zu diesem Thema sollte es schon so einige Diskussionen geben.
Es geht mir um das veränderte Verhalten des Line-Befehls.
So konnte man früher bei Width und Height auch eine Null eintragen und die Linie wurde dargestellt. Jetzt versteht sich
dieser Befehl aber so ähnlich wie der Box-Befehl ein Width oder Height von Null stellt die Linie garnicht dar.
Am Anfang mag das zwar ganz logisch klingen, allerdings nutze ich diesen Befehl mit Vorliebe zur Darstellung von Vektoren.
Hat jetzt ein Vektor einen in X- oder Y-Richtung keinen Beitrag wird der Vektor einfach nicht dargestellt.
Das ist gelinde gesagt totale Moppelkotze.

Code: Alles auswählen

InitSprite()
InitKeyboard()

OpenScreen(1024, 768, 32, "LinienTest")

Repeat
  ExamineKeyboard()
  ClearScreen(0)

  StartDrawing(ScreenOutput())
    
    ;Diese Linien werden in PB4.41 nicht dargestellt:
    Line(100, 100, 200, 0, RGB(255, 0, 0)) ;hor. Linie
    Line(100, 100, 0, 200, RGB(255, 0, 0)) ;ver. Linie
    ;Diese Linien werden dargestellt:
    Line(300, 300, 200, 1, RGB(0, 255, 0)) ;hor. Linie
    Line(300, 300, 1, 200, RGB(0, 255, 0)) ;ver. Linie
    
  StopDrawing()

  FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
CloseScreen()
End
Die oberen Linien (rot) werden garnicht mehr dargestellt, die unteren (grün) dagegen so wie früher auch die oberen Linien.

In meinen Augen eine schlechte Entwicklung.
I´a dllfreak2001
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: PB4.41 Linien mit 2D-Drawing

Beitrag von Kaeru Gaman »

ja da wurde aber ausgiebig drüber diskutiert, bevor das geändert wurde, und auch zwei beta brauchte bis es richtig geändert war.

wenn du Vektoren plotten willst, musst du eben jetzt LineXY benutzen.
dafür hat LineXY jetzt den Vorteil, nicht mehr zwei Fuction-Calls zu verbraten (line und abschließendes plot)
wie das früher der Fall war, ist also nicht mehr wesentlich langsamer als das einfache Line.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Re: PB4.41 Linien mit 2D-Drawing

Beitrag von dllfreak2001 »

Meine Meinung: Ich finde es nicht gut, aber naja...
I´a dllfreak2001
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: PB4.41 Linien mit 2D-Drawing

Beitrag von STARGÅTE »

@dllfreak2001

bin der gleichen Meinung, hatte Line() früher auch für Vektoren genutzt, und Width und Height bei Line() als "Ausbreitungsrichtung" interpretiert, Line(x,y, Width, Height) erstellt erst mal n Plot bei x,y !
Danach wird die Line in Width, Height gezeichnet , bei (0,0) wäre es dann nur ein Punkt also wie Plot
bei (2,0) wäre die Line dann insgesamt 3 Pixel lang ...

Aber genau das kann man ja nun auch bei LineXY() machen, da er ja "schneller geworden sein soll"
also: LineXY(x,y, x+Width, y+Height) liefert dann das gewünschte ergebnis.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Re: PB4.41 Linien mit 2D-Drawing

Beitrag von dllfreak2001 »

Wird dieser Geschwindigkeitsvorteil nicht gleich wieder verbraten wenn man die Position von x2 und y2 berechnet?
I´a dllfreak2001
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: PB4.41 Linien mit 2D-Drawing

Beitrag von STARGÅTE »

bei den zwei Additionne mehr wohl kaum, da das Zeichnen einer Linie (die relativ lang ist) länger dauert als 2 Additionen
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Re: PB4.41 Linien mit 2D-Drawing

Beitrag von dllfreak2001 »

Wäre es dann nicht einfacher gewesen diese Additionen in den LineXY-Befehl einzubauen um den Line-Befehl zu erzeugen anstatt ihn mit seinem jetzigen Verhalten zu veröffentlichen?
I´a dllfreak2001
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: PB4.41 Linien mit 2D-Drawing

Beitrag von STARGÅTE »

dann würde ja wieder die meckern, die eine Line von A nach B zeichen wollen, denn dann müssten die erst B-A rechnen und dann von A aus n Line zeichnen mit Länge (B-A) ...

n 3. Befehl wäre nicht schlecht ...^^
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: PB4.41 Linien mit 2D-Drawing

Beitrag von Kaeru Gaman »

da beide Versionen des Befehls den selben Algorithmus verwenden, muss mindestens einer ja sowieso eine addition durchführen...

das veränderte Verhalten wurde ausgiebig diskutiert und entspricht so nun dem "Standard", wie er in Malprogrammen verwendet wird.
der Hintergrund ist auch weniger, dass eine Linie von höhe 0 nicht mehr gezeichnet wird, das ist eher ein "logischer Nebeneffekt",
sondern dass eine Linie der Länge 200 auch wirklich 200 pixel hat, nicht 201.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Re: PB4.41 Linien mit 2D-Drawing

Beitrag von dllfreak2001 »

STARGÅTE hat geschrieben:dann würde ja wieder die meckern, die eine Line von A nach B zeichen wollen, denn dann müssten die erst B-A rechnen und dann von A aus n Line zeichnen mit Länge (B-A) ...

n 3. Befehl wäre nicht schlecht ...^^
LineXY können die Leute ja behalten.

Egal...
I´a dllfreak2001
Antworten