Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 249300 (10736)

| Suchen
| Zurück zur Übersicht

Autor | Thema: farbverlauf mit cls
Mathias Kranze
| Datum:17.12.01 16:47 |
x%=0 y%=0 z%=0 Schlafe 90 WHILELOOP 32 Cls @RGB(x%,y%,z%) ADD x%,1 ADD y%,1 ADD z%,1 MOMENTBITTE 40 <--------------Des hier ist mein sleep befehl ENDWHILE ----- hallo ich habe hier versucht, einen bildverlauf zu machen und dabei von schwarz zu weiss zu gelangen. nun habe ich aber das ewig wiederkehrende Problem mit dem geplitze beim abspielen. gibts da net irgendwie ne möglichkeit, einen ordentlichen Farbverlauf zu bekommen, ohne ein solches geplitze? Danke für eure Hilfe. Mfg Mathias K.
Thorsten
| Datum:17.12.01 17:04 (mrk@mrk-soft.de) |
Hi, so kann das auch nicht Funktionieen. Am einfachsten gets mit der PROSPEED DLL, Aufweniger mit Profan über API.
Bernhard Künzel
| Datum:17.12.01 22:57 (b.kuenzel@chello.at) |
Hallo Mathias, hier eine Lösung in Profan habe dir zwei Möglichkeiten geschrieben WhileLoop oder WhileNot je nach Profanversion SetTrueColor 1 Def ColMixX&(4) RGB(Add(GetRValue(&(1)),Div(Mul(%(4),Sub(GetRValue(&(2)),GetRValue(&(1)))),%(3))),\ Add(GetGValue(&(1)),Div(Mul(%(4),Sub(GetGValue(&(2)),GetGValue(&(1)))),%(3))),\ Add(GetBValue(&(1)),Div(Mul(%(4),Sub(GetBValue(&(2)),GetBValue(&(1)))),%(3)))) 'Par1=Anfangsfarbe 'Par2=Endfarbe 'Par3=ges. Anzahl Abstufungen 'Par4=X-ste Abstufung 'Ergebnis: Neuer Farbcode Proc ClFenster Parameters Cvon&,Cbis& Declare CB%,Y%',i% CB%=Div(Height(%HWnd),5) 'i%=0 UsePen 5,0,0 '// Rand unterdrücken 'WhileNot GT(i%,CB%) WhileLoop 0,CB% UseBrush 1,ColMixX&(Cvon&,Cbis&,CB%,&Loop) Y%=Add(Div(Mul(Add(&Loop,2),Height(%HWnd)),CB%),0) Rectangle 0,Add(Div(Mul(&Loop,Height(%HWnd)),CB%),0)-\ Add(Width(%HWnd),1),If(GT(Y%,Height(%HWnd)),Add(Height(%HWnd),1),Y%) 'Inc i% Wend EndProc Window 0,0-%MaxX,%MaxY ClFenster RGB(0,0,255),RGB(255,0,0) WaitInput MFG Bernhard
Bernhard Künzel
| Datum:18.12.01 00:32 (b.kuenzel@chello.at) |
Hallo Mathias, du kannst die Procedur noch um einen Parameter erweitern, der die Möglichkeit zur Auswahl hat, direkt auf das Fenster zu zeichnen oder über die Speicher-Bitmap Änderungen: Parameter Cvon&,Cbis&,Flag% bei Flag%=0 wird direkt in das Fenster gezeichnet bei Flag%=1 wird in die Speicher-Bitmap gezeichnet >>>vor UsePen einfügen If Flag% MCLS Width(%hWnd),Height(%hWnd) StartPaint -1 EndIf >>>nach Wend einfügen If Flag% EndPaint MCopyBmp 0,0-Width(%hWnd),Height(%hWnd)>0,0;0 EndIf MFG Bernhard
Robert Zerer
| Datum:18.12.01 07:26 (info@software-technik-zerer.de) |
Am Einfachsten ist es ein Bitmap mittels Grafikprogramm zu erstellen (kann auch viel kleiner als der Desktop sein). Du kannst aber nur so viele verschiedene Farbpunkte erzeugen wie insgesamt Pixel im Bitmap sind. Eine gute Größe ist 256 x 256 Pixel der Qellbitmap. Beim Programmstart zegst Du das Bitmap gestreckt an - fertig. MfG Robert
Mathias Kranze
| Datum:18.12.01 16:49 |
Thorsten, Bernhard Künzel und Robert Zerer, danke für eure Hilfe ich werde eure Hinweisse/Quelltexte testen. es gibts die doch noch....freundliche hilfsbrereite Menschen. mfg Mathias K.
Mathias Kranze
| Datum:18.12.01 16:59 |
Ich glaube ich habe mich dabei etwas flasch audgedrückt. Ich möchte erst einen ganz schwarzen Bildschirm, der dann zu weiss wird, keinen Farbverlauf. MFG M.K.
Frank Abbing
| Datum:18.12.01 20:11 (frankabbing@12move.de) |
Hallo Mathias, du kannst dir gerne meine ProSpeed.dll ansehen, die speziell für Profan entwickelt wurde. Solche Effekt, sogar Überblendungen von zwei Bildern usw. sind kein Problem, und alles ohne zu flackern... Um vorher zu testen, ein Demo für solche Effekte liegt auch auf meiner Homepage. http://www.12move.de/home/frankabbing/ Gruß, Frank
Bernhard Künzel
| Datum:18.12.01 20:19 (b.kuenzel@chello.at) |
Hallo Mathias, von einer Farbe auf eine andere, das geht auch SetTrueColor 1 Def ColMix100&(3) RGB(Add(GetRValue(&(1)),Div(Mul(%(3),Sub(GetRValue(&(2)),GetRValue(&(1)))),100))\ ,Add(GetGValue(&(1)),Div(Mul(%(3),Sub(GetGValue(&(2)),GetGValue(&(1)))),100)),\ Add(GetBValue(&(1)),Div(Mul(%(3),Sub(GetBValue(&(2)),GetBValue(&(1)))),100))) 'Par1=Anfangsfarbe 'Par2=Endfarbe 'Par3=Prozent Abstufung von 0-100 'Ergebnis: Neuer Farbcode Window 0,0-%MaxX,%MaxY UsePen 5,0,0 ShowCursor 0 WhileLoop 0,100 UseBrush 1,ColMix100&(0,RGB(255,255,255),&Loop) Rectangle 0,0-Width(%hWnd),Height(%hWnd) Wend ShowCursor 1 WaitInput MFG Bernhard
Mathias Kranze
| Datum:19.12.01 16:33 |
an Bernhard Künzel: Genau das, was ich suche... an Frank Abbing: Deine DLL habe ich schonmal getestet und sie ist klasse aber für einen solchen zweck, der vielleicht nur 3 sekunden dauernd benötige ich keine ganze DLL. Wenn ich mehr vorhabe werde ich darauf zurückgreifen. mfg
Frank Abbing
| Datum:19.12.01 17:31 (frankabbing@12move.de) |
Hallo, kein Problem! Aber Bernhards Lösung fehlt noch ein Timing. Auf meinem Pentium 4/1800 konnte ich keine Abstufung der Farben erkennen, lief zu schnell... Gruß, Frank
Mathias Kranze
| Datum:19.12.01 19:52 |
Das mit dem timer ist schon erledigt. Der Farbverlauf geh zwar sehr schnell aber ich kann auch ohne einen timer einen Übergang von Schwarz zu Weiss erkennen. Mit Timer gibts wieder geplitze. Mfg Euer Mathias K.
Bernhard Künzel
| Datum: 19.12.01 23:17 (b.kuenzel@chello.at) |
Hallo Mathias, setze nach Rectangle ein Sleep x ein, dann geht es mit Verzögerung auch ohne geplitze. Ich habe es mit Sleep 10 versucht. MFG Bernhard

| Zurück zur Übersicht