home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1997 #3 / amigamamagazinepolishissue03-1 / ma_1995 / 05 / ami019b.txt < prev    next >
Text File  |  1997-04-07  |  726b  |  60 lines

  1. REM Przeliczanie RGB na HSV
  2.  
  3. REM R [0-15], G [0-15], B [0-15]
  4.  
  5.  
  6.  
  7. INPUT R:INPUT G:INPUT B
  8.  
  9. H=0:S=0:V=0:T=-1
  10.  
  11.  
  12.  
  13. MAX=((R>G AND R>B)*T*R)+((G>R AND G>B)*T*G)+((B>R AND B>G)*T*B)
  14.  
  15. MAX=MAX+((R=G) AND R>B)*T*R+((R=B) AND R>G)*T*R+((G=B) AND G>R)*T*G
  16.  
  17. MAX=MAX+(R=G AND G=B)*T*R
  18.  
  19.  
  20.  
  21. MAX=((R<G AND R<B)*T*R)+((G<R AND G<B)*T*G)+((B<R AND B<G)*T*B)
  22.  
  23. MAX=MAX+((R=G) AND R<B)*T*R+((R=B) AND R<G)*T*R+((G=B) AND G<R)*T*G
  24.  
  25. MAX=MAX+(R=G AND G=B)*T*R
  26.  
  27.  
  28.  
  29.     IF MAX=0 THEN GOTO WYNIK
  30.  
  31.  
  32.  
  33. V=MAX/15*100
  34.  
  35. S=100-(100-(MAX-MIN)/MAX*100)
  36.  
  37. D=MAX-MIN
  38.  
  39.  
  40.  
  41.     IF D=0 THEN D=2
  42.  
  43.     IF R=MAX THEN H=(G-B)/D:GOTO WYNIK
  44.  
  45.     IF G=MAX THEN H=2+(B-R)/D:GOTO WYNIK
  46.  
  47.     IF B=MAX THEN H=4+(R-G)/D:GOTO WYNIK
  48.  
  49.  
  50.  
  51.         WYNIK:
  52.  
  53.         H=H*60
  54.  
  55.         IF H<0 THEN H=H+360
  56.  
  57.         PRINT "H,S,V=";H,S,V
  58.  
  59.  
  60.