procedure RGB_To_HSV(r,g,b:real; var h,s,v:real) begin max:=Maximum(r,g,b); min:=Minimum(r,g,b); v:=max if max <> 0 then s:=(max-min)/max else s:=0 if s = 0 then h:=UNDEFINED else begin delta:=max-min if r = max then h:=(g-b)/delta else if g = max then h:=2+(b-r)/delta else if b = max then h:=4+(b-r)/delta; h:=h*60 if h < 0 then h:=h+360 end end