Bei color y,y,y Farbe = gelb?
Übersicht

KruemelatorBetreff: Bei color y,y,y Farbe = gelb? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe mal so aus Spaß rumgecodet.
Dann ist mir was passiert was ich nicht verstehe. Code: [AUSKLAPPEN] Graphics 800,600,16,2
SetBuffer BackBuffer() fpsrate = CreateTimer(120) While Not KeyHit(1) WaitTimer(fpsrate) Oval 400-x#,300-x#,x#*2,x#*2,0 x# = x# + 0.1 y# = a+1*(x#-4)^2 Color y#,y#,y# Flip Wend End |
||
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also bei mir ist das ganze weiß und nicht gelb, vielleicht hast du seltsame Einstellungen an deinem Monitor, jedenfalls kein gelb in Sicht.
MfG DaysShadow |
||
Blessed is the mind too small for doubt |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du setzt rot, grün und blauanteil jeweils auf den selben wert, das sollte graustufen ergeben, es sei denn dein y# wird grösser als 255.0 und provoziert so nen Überlauf. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es ist gelb, ja... und ich kann nur vermuten warum... weil für die rgb-werte gibt man Farben von 0-255 an, bei deiner Berechnung kommt jedenfalls ne größere Zahl raus.
Aber zu deinem Code: Timer + Flip=Schwachsinn. Flip 0 ist das Zauberwort Was bringt sich a+1* in der Berechnung? a ist 0 und eine Zahl mal 1 ist immer diese Zahl. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
liegt daran das Y# größer als 255 wird!
mit diesem Beispiel kannst du die Farbwerte im Debugfenster ausgeben (mit Space) Code: [AUSKLAPPEN] Graphics 800,600,16,2
SetBuffer BackBuffer() fpsrate = CreateTimer(120) While Not KeyHit(1) WaitTimer(fpsrate) Oval 400-x#,300-x#,x#*2,x#*2,0 x# = x# + 0.1 y# = a+1*(x#-4)^2 Color y#,y#,y# If KeyHit (2) Then RGBAuslesen( y + y*$100 + y *$10000) Flip Wend End Function RGBAuslesen(RGB%) Alpha% = (RGB% Shr 24) And $ff R% = (RGB% Shr 16) And $ff G% = (RGB% Shr 8) And $ff B% = RGB% And $ff DebugLog "RGB% " + RSet(Alpha%,5) + RSet(R%,5) + RSet(G%,5) + RSet(B%,5) End Function Graphics 800,600,16,2 SetBuffer BackBuffer() fpsrate = CreateTimer(120) While Not KeyHit(1) WaitTimer(fpsrate) Oval 400-x#,300-x#,x#*2,x#*2,0 x# = x# + 0.1 y# = a+1*(x#-4)^2 Color y#,y#,y# If KeyHit (2) Then RGBAuslesen( y + y*$100 + y *$10000) Flip Wend End Function RGBAuslesen(RGB%) Alpha% = (RGB% Shr 24) And $ff R% = (RGB% Shr 16) And $ff G% = (RGB% Shr 8) And $ff B% = RGB% And $ff DebugLog "RGB% " + RSet(Alpha%,5) + RSet(R%,5) + RSet(G%,5) + RSet(B%,5) End Function |
||
[BB2D | BB3D | BB+]
|
Kruemelator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Eingeproggt: Ist die Grundform einer Scheitelpunktsform einer quadratischen Funktion.
Aber warum gelb? Der r-,g- und b-Anteil ist doch immer gleich. Später wirds auch noch rot. Gruß Kruemelator Edit: Warum macht Color den aus ein und der selben Zahl 3 unterschiedliche? |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
lass dir mal y ausgeben. das liegt über 255
wie schon gesagt, damit provuzierst du einen überlauf. |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie gesagt, wegen Überlauf.
Deine Werte werden grösser als 255, d.h. dass das, was beim Blauanteil überläuft, zum Grünanteil hinzuaddiert wird, und das, was beim Grünanteil zu gross ist, wird beim Rotanteil hinzuaddiert. Drum wirds zuerst gelb und später sogar rot. Dieses Verhalten kann man sich übrigens zunutze machen, zB bei einfachen Hex-Farbangaben: Code: [AUSKLAPPEN] Color 0,0,$FF00FF
|
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Code geht auch ''geringfügig'' (so um ~10'000 mal) schneller:
Code: [AUSKLAPPEN] Graphics 800,600,16,2
SetBuffer BackBuffer() Local X%,Y%,F%,C#,B%=BackBuffer() LockBuffer B For Y=0 To 299 For X=0 To 399 C=Sqr((399.5-X)^2+(299.5-Y)^2) F=(C*C/6.0) Mod 256 WritePixelFast X, Y,F+F*256+F*65536,B WritePixelFast X,599-Y,F+F*256+F*65536,B WritePixelFast 799-X, Y,F+F*256+F*65536,B WritePixelFast 799-X,599-Y,F+F*256+F*65536,B Next Next UnlockBuffer B WaitKey |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
color macht sogesehen aus 3 zahlen eine.
Dabei sieht das halt so aus $RRGGBB und wenn du eben einen blau wert >255 angibst passiert $FFFFFF+1= $1000000 und das passt nicht mehr ins Schema $RRGGBB. Dass es dann zu irgendwas abartigen kommt ist klar |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group