Gerade Linien - Verzerrungseffekt

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
netzer
Beiträge: 26
Registriert: 13.06.2005 20:14
Wohnort: Homeoffice

Gerade Linien - Verzerrungseffekt

Beitrag von netzer »

Hier mal ein Posting von mir.
Das Ergebnis ist eine Zeichnung, mit der mich meine Kunstlehrerin irgendwann in der Grundschule gequält hat.

Vielleicht hat ja jemand Lust die RGB-Werte eleganter anzupassen. /:->
Auch andere Verbesserungen sind herzlich willkommen!

Gruß
Netzer

Code: Alles auswählen

; Grafikspielerei just for fun
; 2008 by netzer 
; PB 4.10 for Windows
;-------------------------------------------- 


If InitSprite() = 0 
  MessageRequester("Fehler", "Kann Grafik nicht Initialisieren", 0)
  End
EndIf

If InitKeyboard() = 0 
  MessageRequester("Fehler", "Kann Keyboard nicht Initialisieren", 0)
  End
EndIf

If InitSprite3D() = 0 
  MessageRequester("Fehler", "Kann 3D-Grafik nicht Initialisieren", 0)
  End
EndIf

OpenScreen(1280,800,16,"Sprite Test")  ;Bildschirmgröße anpassen!!!


Repeat

ExamineKeyboard()
ClearScreen(RGB(0,0,0))

  x1 = 400
  y1 = 200
  a1 = 400
  b1 = 0
  c1 = RGB(r,g,b)
  
  x2 = 800
  y2 = 200
  a2 = 0
  b2 = 400
  c2 = RGB(r,g,b)
  
  x3 = 400
  y3 = 200
  a3 = 0
  b3 = 400
  c3 = RGB(r,g,b)
  
  x4 = 400
  y4 = 200
  a4 = 400
  b4 = 0
  c4 = RGB(r,g,b)  

StartDrawing(ScreenOutput()) : DrawingMode(1)   

DrawText(550, 150, "RGB: " + Str(r) + " " + Str(g) + " " + Str(b), RGB(255,255,255))
  
  For k = 1 To 39 

    x1 + 10
    a1 - 10
    b1 + 10
    
    Line(x1, y1, a1, b1, c1)

  Next
  
  For k = 1 To 39 

    y2 + 10
    a2 - 10
    b2 - 10
    
    Line(x2, y2, a2, b2, c2)

  Next
  
  For k = 1 To 39 

    y3 + 10
    a3 + 10
    b3 - 10
    
    Line(x3, y3, a3, b3, c3)

  Next
  
  For k = 1 To 39 

    y4 + 10
    a4 - 10
    b4 - 10
    
    Line(x4, y4, a4, b4, c4)

  Next

  Line(400, 200, 400, 0 , RGB(255, 255, 255))   
  Line(400, 600, 400, 0 , RGB(255, 255, 255)) 
  Line(400, 200, 0, 400 , RGB(255, 255, 255)) 
  Line(800, 200, 0, 400 , RGB(255, 255, 255)) 

If r < 255 And g = 0 And b = 0
  r + 1
EndIf   

If r =255 And g < 255 And b = 0
  g + 1
EndIf   

If r = 255 And g = 255 And b < 255
  b + 1
EndIf 

If r > 0 And g = 255 And b = 255
  r - 1
EndIf   

If r = 0 And g > 0 And b = 255
  g - 1
EndIf

If r = 0 And g = 0 And b > 0
  b - 1
EndIf

If r = 0 And g = 0 And b = 1
  g = 1
  b = 0
EndIf

If r = 0 And g < 255 And b = 0
  g + 1
EndIf

If r < 255 And g = 255 And b < 255
  r + 1
  b + 1
EndIf



StopDrawing()

FlipBuffers() 


Until KeyboardPushed(#PB_Key_Escape) 



 
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

:D sieht gut aus. (das forum wird immer psycheledischer :mrgreen: )
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
netzer
Beiträge: 26
Registriert: 13.06.2005 20:14
Wohnort: Homeoffice

Beitrag von netzer »

#NULL


Nun ja,

ich nenn es einfach mal Vergangenheitsbewältigung :freak:
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Habs mal ein bisschen gekürzt:

Code: Alles auswählen

; Grafikspielerei just for fun
; 2008 by netzer
; PB 4.10 for Windows
;--------------------------------------------

If InitSprite() = 0
	MessageRequester("Fehler", "Kann Grafik nicht Initialisieren", 0) : End
EndIf

If InitKeyboard() = 0
	MessageRequester("Fehler", "Kann Keyboard nicht Initialisieren", 0) : End
EndIf

If InitSprite3D() = 0
	MessageRequester("Fehler", "Kann 3D-Grafik nicht Initialisieren", 0) : End
EndIf

OpenScreen(1024,768,16,"Sprite Test")  ;Bildschirmgröße anpassen!!!

Repeat
	ExamineKeyboard()
	
	ClearScreen(RGB(0,0,0))

	c1 = RGB(r,g,b) : c2 = RGB(r,g,b) : c3 = RGB(r,g,b) : c4 = RGB(r,g,b) 
	
	StartDrawing(ScreenOutput())
	DrawingMode(1)   	
	DrawText(550, 150, "RGB: " + Str(r) + " " + Str(g) + " " + Str(b), RGB(255,255,255))
	
	For k = 1 To 39	
		Line(400 + (k * 10),200,400 - (k * 10),(k * 10),c1)		
		Line(800,200 + (k * 10),-(k * 10),400 - (k * 10),c2)		
		Line(400,200 + (k * 10),(k * 10),400 - (k * 10),c3)
		Line(400,200 + (k * 10),400 - (k * 10),-(k * 10),c4)
	Next

	Line(400,200,400,0,#White)   
	Line(400,600,400,0,#White)
	Line(400,200,0,400,#White)
	Line(800,200,0,400,#White)
	
	If r < 255 And g = 0 And b = 0 : r + 1 : EndIf	
	If r = 255 And g < 255 And b = 0 : g + 1 : EndIf   	
	If r = 255 And g = 255 And b < 255 : b + 1 : EndIf	
	If r > 0 And g = 255 And b = 255 : r - 1 : EndIf   	
	If r = 0 And g > 0 And b = 255 : g - 1 : EndIf	
	If r = 0 And g = 0 And b > 0 : b - 1 : EndIf	
	If r = 0 And g = 0 And b = 1 : g = 1 : b = 0 : EndIf	
	If r = 0 And g < 255 And b = 0 : g + 1 : EndIf	
	If r < 255 And g = 255 And b < 255 : r + 1 : b + 1 : EndIf
			
	StopDrawing()
	
	FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Windows 10 Pro, 64-Bit / Outtakes | Derek
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Sieht nett aus.. so gebogen.. und so pseudo 3D <)
Bild
Antworten