Español
Foro

Hecho: Farbunterschied ermitteln

 

KHR
¡Hola miteinander,

Yo búsqueda una Rutina, con el se berechnen läßt, si zwei Farben para unser Auge genug de einander abweichen, sagen wir genug Farbkontrast haben en deutliche Abgrenzug a ermöglichen.

Als Ejemplo Yo hier una Democode, el Rechtecke con Zufallsfarben darstellt.

Meist weichen esta Farben kräftig de einander de. Manchmal son ellos aber desafortunadamente muy verwandt.

¿Cómo se puede Yo el en el Programa-Ablauf erkennen, en z.B. el Zufallsfarbe neu berechnen que se??
KompilierenMarcaSeparación
declare farbe&, size&
cls
randomize
size& = 210

while 1

    whileloop (size&/10/2)

        farbe& = @rgb(@rnd(256),@rnd(256),@rnd(256))
        usebrush 1,farbe&
        UsePen 5,0,farbe&
        rectangle   (&loop*10),(&loop*10) - (size&-(&loop*10)),(size&-(&loop*10))

    endwhile

    waitinput 400
    cls

Gruß
Karl-Heinz
WIN XP home/Pro / XPROFAN 11 / P2CPP
ATMEL + BASCOM Fan
14.03.2009  
 



Algo como?

Ähnlichkeit a schwarz:
KompilierenMarcaSeparación
o
KompilierenMarcaSeparación
proc FARBAEHNLICHKEIT

    PARAMETERS FARBE1&,FARBE2&
    RETORNO (ABS(GETRVALUE(FARBE1&)-GETRVALUE(FARBE2&))+ABS(GETGVALUE(FARBE1&)-GETGVALUE(FARBE2&))+ABS(GETBVALUE(FARBE1&)-GETBVALUE(FARBE2&))) * 0.001307189542483660130718954248

ENDPROC


Como unser Auge se hier sin embargo no beachtet como unsere Augen RGB no linear erfassen pero durchschnittlich más después de Rot+Grün y Gelb(=Rot+Grün)+Blau y Helligkeit. (hierbei aber glaube Yo no vordergründig)

Jedenfalls aber son esta Función no de, dass Rot y Grün oder Blau y Rot igual son.

El Ähnlichkeit a blanco wäre gegeben, si la Rückgabewert 1-x genommen sería.
 
14.03.2009  
 




KHR
¡Hola David

danke para Su Solución. Yo habs veces en el Fahrräder reingebastelt.
KompilierenMarcaSeparación
Fahrräder
by Karl-Heinz Rattay / 2009
einfach ausprobieren
Wems gefällt der kann ja einen screensaver draus machen!
Dieses Modul ist einfach so wie es ist. Wems nicht gefällt, der kann umstricken!!
declare  r&, g&, b&, diff&, mix&, lastmix&
declare Zaehler&

proc zeichne

    parameters c&,hpos%,vpos%, size%
    usepen   0,(size%/5),c&
    useBrush 0,c&
    ellipse (hpos%-(Size%/1.5)),(vpos%-(Size%/1.5)) - (hpos%+(Size%/1.5)),(vpos%+(Size%/1.5))
    ellipse ((hpos%+size%*2.0)-(Size%/1.5)),(vpos%-(Size%/1.5)) - ((hpos%+size%*2.0)+(Size%/1.5)),(vpos%+(Size%/1.5))
    usepen   0,(size%/8),c&
    moveto hpos%,vpos%
    lineto (hpos%+(size%/6)),(vpos% - (Size%*1.05))
    lineto (hpos%+(size%*1.7))   , (vpos% - (Size%*0.95) + (size%/6))
    lineto (hpos%+(size%*1.1))  , vpos%
    moveto (hpos%+(size%/4)),(vpos% - (Size%*1.3))
    lineto (hpos%+(size%/6)),(vpos% - (Size%*1.3))
    lineto (hpos%+(size%/6)),(vpos% - (Size%*1))
    lineto (hpos%+(size%*1.1))  , vpos%
    lineto (hpos%+(size%*2))  , vpos%
    lineto (hpos%+(size%*1.7))   , (vpos% - (Size%*1) + (size%/6))
    lineto (hpos%+(size%*1.7))   , (vpos% - (Size%*1) -(size%/7))
    moveto (hpos%+(size%*1.7)-(size%/5))   , (vpos% - (Size%*1.1) -(size%/8))
    lineto (hpos%+(size%*1.7)+(size%/5))   , (vpos% - (Size%*1.1) -(size%/8))
    moveto (hpos%+(size%*1.1))  , (vpos%-(size%*0.3))
    lineto (hpos%+(size%*1.1))  , (vpos%+(size%*0.3))

Endproc

proc FARBAEHNLICHKEIT

    PARAMETERS FARBE1&,FARBE2&
    RETURN (ABS(GETRVALUE(FARBE1&)-GETRVALUE(FARBE2&))+ABS(GETGVALUE(FARBE1&)-GETGVALUE(FARBE2&))+ABS(GETBVALUE(FARBE1&)-GETBVALUE(FARBE2&))) * 0.001307189542483660130718954248

endproc

cls
showmax
randomize

while 1

    inc zaehler&

    if zaehler& > 80

        while 1

            r&=Rnd(256)
            g&=Rnd(256)
            b&=Rnd(256)
            mix&=@rgb(r&,g&,b&)
            Case FARBAEHNLICHKEIT (lastmix&,mix&) :CONTINUE
            lastmix&=mix&
            BREAK

        endwhile

        zeichne  @rgb(r&,g&,b&) ,
        ((%maxx*0.6) + @rnd(%maxx/4)) ,
        (100+@rnd(@rnd(%maxy*0.85))) ,
        (15+@rnd(40))
        zaehler& = 1

    endif

    copyBmp 1,0 - %maxx,%maxy > 0,0;0
    case @IsKey(27) : end    ESC gedrückt

s4 href='./../../funktionsreferenzen/XProfan/endwhile/'>endwhile


Yo biete dazu como Vergleich el Solución de el Nachbarforum a.
KompilierenMarcaSeparación
Fahrräder
by Karl-Heinz Rattay / 2009
simplemente ausprobieren
Wems gefällt el kann  una screensaver draus hacer!
Dieses Modul es simplemente así como lo es. Wems no gefällt, el kann umstricken!!
declarar  r&, g&, b&, diff&, mix&, lastmix&
declarar Zaehler&

proc zeichne

    parámetros c&,hpos%,vpos%, size%
    usepen   0,(size%/5),c&
    useBrush 0,c&
    ellipse (hpos%-(Size%/1.5)),(vpos%-(Size%/1.5)) - (hpos%+(Size%/1.5)),(vpos%+(Size%/1.5))
    ellipse ((hpos%+size%*2.0)-(Size%/1.5)),(vpos%-(Size%/1.5)) - ((hpos%+size%*2.0)+(Size%/1.5)),(vpos%+(Size%/1.5))
    usepen   0,(size%/8),c&
    moveto hpos%,vpos%
    lineto (hpos%+(size%/6)),(vpos% - (Size%*1.05))
    lineto (hpos%+(size%*1.7))   , (vpos% - (Size%*0.95) + (size%/6))
    lineto (hpos%+(size%*1.1))  , vpos%
    moveto (hpos%+(size%/4)),(vpos% - (Size%*1.3))
    lineto (hpos%+(size%/6)),(vpos% - (Size%*1.3))
    lineto (hpos%+(size%/6)),(vpos% - (Size%*1))
    lineto (hpos%+(size%*1.1))  , vpos%
    lineto (hpos%+(size%*2))  , vpos%
    lineto (hpos%+(size%*1.7))   , (vpos% - (Size%*1) + (size%/6))
    lineto (hpos%+(size%*1.7))   , (vpos% - (Size%*1) -(size%/7))
    moveto (hpos%+(size%*1.7)-(size%/5))   , (vpos% - (Size%*1.1) -(size%/8))
    lineto (hpos%+(size%*1.7)+(size%/5))   , (vpos% - (Size%*1.1) -(size%/8))
    moveto (hpos%+(size%*1.1))  , (vpos%-(size%*0.3))
    lineto (hpos%+(size%*1.1))  , (vpos%+(size%*0.3))

ENDPROC

cls
showmax
randomize

mientras que 1

    inc zaehler&

    if zaehler& > 80

        mientras que 1

            r&    = Rnd(256)
            g&    = Rnd(256)
            b&    = Rnd(256)
            mix&  =(r&+g&+b&)/3
            diff& = Abs(lastmix&-mix&)
            Case diff&<40   :  CONTINUE
            lastmix& = mix&
            BREAK

        endwhile

        zeichne  @rgb(r&,g&,b&) ,
        ((%maxx*0.6) + @rnd(%maxx/4)) ,
        (100+@rnd(@rnd(%maxy*0.85))) ,
        (15+@rnd(40))
        zaehler& = 1

    endif

    copyBmp 1,0 - %maxx,%maxy > 0,0;0
    caso @IsKey(27) : end    ESC gedrückt

endwhile


Kann alguien Unterschiede en el Farbverteilung erkennen?

Yo glaube ya algo erkannt a haben, con el Ergebnis warte Yo aber - tal vez meldet se en efecto alguien de Euch
 
Gruß
Karl-Heinz
WIN XP home/Pro / XPROFAN 11 / P2CPP
ATMEL + BASCOM Fan
14.03.2009  
 



Der Diferencia es, dass el Algo r+g+b farbenblind es. Ein rotes Pixel es danach genauso wertig como una Grünes, qué entonces aber nichts mehr a tun ha con si zwei Farben para unser Auge genug de einander abweichen.
 
14.03.2009  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

3.876 Views

Untitledvor 0 min.
Torsten Boo29.07.2021
Michael W.03.07.2016
Julian Schmidt19.06.2013

Themeninformationen

Dieses Thema ha 2 subscriber:

iF (2x)
KHR (2x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie