.MCAD 303010000 1 0 16128 0 .CMD PLOTFORMAT 0 0 1 1 0 0 1 0 0 1 1 0 0 1 0 1 0 0 NO-TRACE-STRING 0 2 1 0 NO-TRACE-STRING 0 3 2 0 NO-TRACE-STRING 0 4 3 0 NO-TRACE-STRING 0 1 4 0 NO-TRACE-STRING 0 2 5 0 NO-TRACE-STRING 0 3 6 0 NO-TRACE-STRING 0 4 0 0 NO-TRACE-STRING 0 1 1 0 NO-TRACE-STRING 0 2 2 0 NO-TRACE-STRING 0 3 3 0 NO-TRACE-STRING 0 4 4 0 NO-TRACE-STRING 0 1 5 0 NO-TRACE-STRING 0 2 6 0 NO-TRACE-STRING 0 3 0 0 NO-TRACE-STRING 0 4 1 0 NO-TRACE-STRING 0 1 21 15 0 3 .CMD FORMAT rd=d ct=10 im=i et=6 zt=15 pr=3 mass length time charge temperature tr=0 vm=2163951 .CMD SET ORIGIN 0 .CMD SET TOL 0.001000000000000 .CMD SET PRNCOLWIDTH 8 .CMD SET PRNPRECISION 4 .CMD PRINT_SETUP 0.800000 0.500000 0.500000 0.500000 0 .CMD HEADER_FOOTER 1 1 *empty* *empty* *empty* 0 1 *empty* *empty* *empty* .CMD HEADER_FOOTER_FONT fontID=14 family=Arial points=10 bold=0 italic=0 underline=0 .CMD HEADER_FOOTER_FONT fontID=15 family=Arial points=10 bold=0 italic=0 underline=0 .CMD DEFINE_FONTSTYLE_NAME fontID=0 name=Variables .CMD DEFINE_FONTSTYLE_NAME fontID=1 name=Constants .CMD DEFINE_FONTSTYLE_NAME fontID=2 name=Text .CMD DEFINE_FONTSTYLE_NAME fontID=4 name=User^1 .CMD DEFINE_FONTSTYLE_NAME fontID=5 name=User^2 .CMD DEFINE_FONTSTYLE_NAME fontID=6 name=User^3 .CMD DEFINE_FONTSTYLE_NAME fontID=7 name=User^4 .CMD DEFINE_FONTSTYLE_NAME fontID=8 name=User^5 .CMD DEFINE_FONTSTYLE_NAME fontID=9 name=User^6 .CMD DEFINE_FONTSTYLE_NAME fontID=10 name=User^7 .CMD DEFINE_FONTSTYLE fontID=0 family=Times^New^Roman points=10 bold=0 italic=0 underline=0 .CMD DEFINE_FONTSTYLE fontID=1 family=Times^New^Roman points=10 bold=0 italic=0 underline=0 .CMD DEFINE_FONTSTYLE fontID=2 family=Arial points=10 bold=0 italic=0 underline=0 .CMD DEFINE_FONTSTYLE fontID=4 family=Arial points=10 bold=0 italic=0 underline=0 .CMD DEFINE_FONTSTYLE fontID=5 family=Courier^New points=10 bold=0 italic=0 underline=0 .CMD DEFINE_FONTSTYLE fontID=6 family=System points=10 bold=0 italic=0 underline=0 .CMD DEFINE_FONTSTYLE fontID=7 family=Script points=10 bold=0 italic=0 underline=0 .CMD DEFINE_FONTSTYLE fontID=8 family=Roman points=10 bold=0 italic=0 underline=0 .CMD DEFINE_FONTSTYLE fontID=9 family=Modern points=10 bold=0 italic=0 underline=0 .CMD DEFINE_FONTSTYLE fontID=10 family=Times^New^Roman points=10 bold=0 italic=0 underline=0 .CMD UNITS U=1 .CMD DIMENSIONS_ANALYSIS 0 0 .TXT 2 25 1 0 Cg a24.000000,24.250000,27 {\rtf1\ansi \deff0 {\fonttbl {\f0\fnil Arial;} {\f1\fnil Courier;} {\f2\fnil Symbol;} } {\plain {RGB/HSI Color Conversion}} } .TXT 2 5 2 0 Cg a12.000000,12.250000,15 {\rtf1\ansi \deff0 {\fonttbl {\f0\fnil Arial;} {\f1\fnil Courier;} {\f2\fnil Symbol;} } {\plain {22 Jan. 1994}} } .TXT 0 29 3 0 Cg a11.000000,11.250000,14 {\rtf1\ansi \deff0 {\fonttbl {\f0\fnil Arial;} {\f1\fnil Courier;} {\f2\fnil Symbol;} } {\plain {RGB_HSI.MCD}} } .EQN 2 -57 4 0 {0:i}NAME:0;12 .EQN 3 30 8 0 {0:R}NAME:(({1,13}ö1ö1ö1ö.5ö0ö0ö0ö0ö0ö.5ö1ö1ö1)){51} .EQN 2 -31 5 0 {0:a}NAME:\((1)/(6)) .EQN 0 10 6 0 {0:b}NAME:\((1)/(2)) .EQN 0 10 7 0 {0:c}NAME:\((1)/(3)) .EQN 2 11 9 0 {0:G}NAME:(({1,13}ö0ö0ö0ö0ö0ö.5ö1ö1ö1ö1ö1ö.5ö0)){51} .EQN 4 0 10 0 {0:B}NAME:(({1,13}ö0ö.5ö1ö1ö1ö1ö1ö.5ö0ö0ö0ö0ö0)){51} .TXT 3 -31 11 0 Cg a68.000000,68.250000,71 {\rtf1\ansi \deff0 {\fonttbl {\f0\fnil Arial;} {\f1\fnil Courier;} {\f2\fnil Symbol;} } {\plain {First rotate the cube to x,y,z with diagonal on z-axis, R on x-axis.}} } .EQN 4 1 12 0 {0:X}NAME({0:R}NAME,{0:G}NAME,{0:B}NAME):2*{0:a}NAME*{0:R}NAME-{0:a}NAME*{0:G}NAME-{0:a}NAME*{0:B}NAME .EQN 0 26 13 0 {0:Y}NAME({0:R}NAME,{0:G}NAME,{0:B}NAME):{0:b}NAME*{0:G}NAME-{0:b}NAME*{0:B}NAME .EQN 0 24 14 0 {0:Z}NAME({0:R}NAME,{0:G}NAME,{0:B}NAME):{0:c}NAME*{0:R}NAME+{0:c}NAME*{0:G}NAME+{0:c}NAME*{0:B}NAME .EQN 4 -50 15 0 ({0:x}NAME)[({0:i}NAME):{0:X}NAME(({0:R}NAME)[({0:i}NAME),({0:G}NAME)[({0:i}NAME),({0:B}NAME)[({0:i}NAME)) .EQN 0 26 16 0 ({0:y}NAME)[({0:i}NAME):{0:Y}NAME(({0:R}NAME)[({0:i}NAME),({0:G}NAME)[({0:i}NAME),({0:B}NAME)[({0:i}NAME)) .EQN 0 24 17 0 ({0:z}NAME)[({0:i}NAME):{0:Z}NAME(({0:R}NAME)[({0:i}NAME),({0:G}NAME)[({0:i}NAME),({0:B}NAME)[({0:i}NAME)) .TXT 4 -51 18 0 Cg a40.000000,40.250000,43 {\rtf1\ansi \deff0 {\fonttbl {\f0\fnil Arial;} {\f1\fnil Courier;} {\f2\fnil Symbol;} } {\plain {Then convert to cylindrical coordinates:}} } .EQN 4 1 20 0 ({0:\f}NAME)[({0:i}NAME):{0:angle}NAME(({0:x}NAME)[({0:i}NAME),({0:y}NAME)[({0:i}NAME)) .EQN 0 39 19 0 ({0:\r}NAME)[({0:i}NAME):\(({0:x}NAME)[({0:i}NAME)*({0:x}NAME)[({0:i}NAME)+({0:y}NAME)[({0:i}NAME)*({0:y}NAME)[({0:i}NAME)) .TXT 4 -40 21 0 Cg a67.500000,67.750000,115 {\rtf1\ansi \deff0 {\fonttbl {\f0\fnil Arial;} {\f1\fnil Courier;} {\f2\fnil Symbol;} } {\plain {The problem is that }{\f2 r}{ is not independent of I, and }{\f2 r}{max describes a hexagon, not a unit circle.}} } .EQN 4 0 22 0 2*{0:\p}NAME&0&(_n_u_l_l_&2*{0:\p}NAME)&({0:\f}NAME)[({0:i}NAME)@&&(_n_u_l_l_&_n_u_l_l_)&{0:i}NAME 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 5 NO-TRACE-STRING 0 2 1 0 NO-TRACE-STRING 0 3 2 0 NO-TRACE-STRING 0 4 3 0 NO-TRACE-STRING 0 1 4 0 NO-TRACE-STRING 0 2 5 0 NO-TRACE-STRING 0 3 6 0 NO-TRACE-STRING 0 4 0 0 NO-TRACE-STRING 0 1 1 0 NO-TRACE-STRING 0 2 2 0 NO-TRACE-STRING 0 3 3 0 NO-TRACE-STRING 0 4 4 0 NO-TRACE-STRING 0 1 5 0 NO-TRACE-STRING 0 2 6 0 NO-TRACE-STRING 0 3 0 0 NO-TRACE-STRING 0 4 1 0 NO-TRACE-STRING 0 1 15 12 0 3 .EQN 0 24 23 0 1&-1&(-1&1)&({0:y}NAME)[({0:i}NAME)@1&-1&(-1&1)&({0:x}NAME)[({0:i}NAME) 0 1 0 0 0 0 1 0 1 0 0 0 0 1 4 0 0 0 NO-TRACE-STRING 0 2 1 0 NO-TRACE-STRING 0 3 2 0 NO-TRACE-STRING 0 4 3 0 NO-TRACE-STRING 0 1 4 0 NO-TRACE-STRING 0 2 5 0 NO-TRACE-STRING 0 3 6 0 NO-TRACE-STRING 0 4 0 0 NO-TRACE-STRING 0 1 1 0 NO-TRACE-STRING 0 2 2 0 NO-TRACE-STRING 0 3 3 0 NO-TRACE-STRING 0 4 4 0 NO-TRACE-STRING 0 1 5 0 NO-TRACE-STRING 0 2 6 0 NO-TRACE-STRING 0 3 0 0 NO-TRACE-STRING 0 4 1 0 NO-TRACE-STRING 0 1 12 12 0 3 .EQN 0 21 24 0 1&0&(_n_u_l_l_&_n_u_l_l_)&({0:\r}NAME)[({0:i}NAME)@&&(_n_u_l_l_&_n_u_l_l_)&{0:i}NAME 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 5 NO-TRACE-STRING 0 2 1 0 NO-TRACE-STRING 0 3 2 0 NO-TRACE-STRING 0 4 3 0 NO-TRACE-STRING 0 1 4 0 NO-TRACE-STRING 0 2 5 0 NO-TRACE-STRING 0 3 6 0 NO-TRACE-STRING 0 4 0 0 NO-TRACE-STRING 0 1 1 0 NO-TRACE-STRING 0 2 2 0 NO-TRACE-STRING 0 3 3 0 NO-TRACE-STRING 0 4 4 0 NO-TRACE-STRING 0 1 5 0 NO-TRACE-STRING 0 2 6 0 NO-TRACE-STRING 0 3 0 0 NO-TRACE-STRING 0 4 1 0 NO-TRACE-STRING 0 1 15 12 0 3 .EQN 20 -45 25 0 ({1,6}ö({0:y}NAME)[(3)ö({0:x}NAME)[(0)ö({0:\r}NAME)[(3)ö({0:\r}NAME)[(2)ö({0:\r}NAME)[(1)ö({0:\r}NAME)[(0))={0}?_n_u_l_l_ .TXT 4 0 26 0 Cg a53.000000,53.250000,56 {\rtf1\ansi \deff0 {\fonttbl {\f0\fnil Arial;} {\f1\fnil Courier;} {\f2\fnil Symbol;} } {\plain {By definition, S = 1 if one of the primaries is zero.}} } .TXT 2 0 27 0 Cg a65.750000,66.000000,77 {\rtf1\ansi \deff0 {\fonttbl {\f0\fnil Arial;} {\f1\fnil Courier;} {\f2\fnil Symbol;} } {\plain {Now normalize }{\f2 r}{ to make it a circle, and independent of Intensity:}} } .EQN 6 1 28 0 ({0:H}NAME)[({0:i}NAME):({0:\f}NAME)[({0:i}NAME) .EQN 0 14 29 0 ({0:I}NAME)[({0:i}NAME):({0:z}NAME)[({0:i}NAME) .EQN 0 22 30 0 ({0:S}NAME)[({0:i}NAME):1-(3*{0:Min}NAME(({0:R}NAME)[({0:i}NAME),({0:G}NAME)[({0:i}NAME),({0:B}NAME)[({0:i}NAME)))/(({0:R}NAME)[({0:i}NAME)+({0:G}NAME)[({0:i}NAME)+({0:B}NAME)[({0:i}NAME)) .EQN 4 -36 31 0 1.2&-1.2&(-1.2&1.2)&({0:S}NAME)[({0:i}NAME)*{0:sin}NAME(({0:H}NAME)[({0:i}NAME))@1.2&-1.2&(-1.2&1.2)&({0:S}NAME)[({0:i}NAME)*{0:cos}NAME(({0:H}NAME)[({0:i}NAME)) 0 1 0 0 0 0 1 0 1 0 0 0 0 1 4 0 0 0 NO-TRACE-STRING 0 2 1 0 NO-TRACE-STRING 0 3 2 0 NO-TRACE-STRING 0 4 3 0 NO-TRACE-STRING 0 1 4 0 NO-TRACE-STRING 0 2 5 0 NO-TRACE-STRING 0 3 6 0 NO-TRACE-STRING 0 4 0 0 NO-TRACE-STRING 0 1 1 0 NO-TRACE-STRING 0 2 2 0 NO-TRACE-STRING 0 3 3 0 NO-TRACE-STRING 0 4 4 0 NO-TRACE-STRING 0 1 5 0 NO-TRACE-STRING 0 2 6 0 NO-TRACE-STRING 0 3 0 0 NO-TRACE-STRING 0 4 1 0 NO-TRACE-STRING 0 1 19 18 0 3 .EQN 2 42 32 0 1.2&0&(0&_n_u_l_l_)&({0:I}NAME)[({0:i}NAME),1@&&(_n_u_l_l_&_n_u_l_l_)&{0:i}NAME 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 5 NO-TRACE-STRING 0 2 1 0 NO-TRACE-STRING 0 3 2 0 NO-TRACE-STRING 0 4 3 0 NO-TRACE-STRING 0 1 4 0 NO-TRACE-STRING 0 2 5 0 NO-TRACE-STRING 0 3 6 0 NO-TRACE-STRING 0 4 0 0 NO-TRACE-STRING 0 1 1 0 NO-TRACE-STRING 0 2 2 0 NO-TRACE-STRING 0 3 3 0 NO-TRACE-STRING 0 4 4 0 NO-TRACE-STRING 0 1 5 0 NO-TRACE-STRING 0 2 6 0 NO-TRACE-STRING 0 3 0 0 NO-TRACE-STRING 0 4 1 0 NO-TRACE-STRING 0 1 19 15 0 3 .TXT 26 -43 33 0 Cg a34.000000,34.250000,37 {\rtf1\ansi \deff0 {\fonttbl {\f0\fnil Arial;} {\f1\fnil Courier;} {\f2\fnil Symbol;} } {\plain {An equivalent computation for H is}} } .EQN 6 0 34 0 ({0:\q}NAME)[({0:i}NAME):{0:acos}NAME(((1)/(2)*((({0:R}NAME)[({0:i}NAME)-({0:G}NAME)[({0:i}NAME))+(({0:R}NAME)[({0:i}NAME)-({0:B}NAME)[({0:i}NAME))))/(\(((({0:R}NAME)[({0:i}NAME)-({0:G}NAME)[({0:i}NAME)))^(2)+(({0:R}NAME)[({0:i}NAME)-({0:B}NAME)[( {0:i}NAME))*(({0:G}NAME)[({0:i}NAME)-({0:B}NAME)[({0:i}NAME))))) .EQN 9 0 35 0 ({0:H}NAME)[({0:i}NAME):{0:if}NAME(({0:G}NAME)[({0:i}NAME)ò({0:B}NAME)[({0:i}NAME),({0:\q}NAME)[({0:i}NAME),2*{0:\p}NAME-({0:\q}NAME)[({0:i}NAME)) .EQN 1 21 36 0 {0:\a}NAME*({0:H}NAME){51}={0 0 0 12 1 42 42}?_n_u_l_l_ .TXT 5 -2 37 0 Cg a29.000000,29.250000,32 {\rtf1\ansi \deff0 {\fonttbl {\f0\fnil Arial;} {\f1\fnil Courier;} {\f2\fnil Symbol;} } {\plain {=== HSI to RGB Conversion ===}} } .TXT 4 -19 38 0 Cg a24.000000,24.250000,27 {\rtf1\ansi \deff0 {\fonttbl {\f0\fnil Arial;} {\f1\fnil Courier;} {\f2\fnil Symbol;} } {\plain {(1) If 0 < H < 120, then}} } .EQN 4 0 39 0 ({0:Blu}NAME)[({0:i}NAME):({0:I}NAME)[({0:i}NAME)*(1-({0:S}NAME)[({0:i}NAME))/(\(3)) .EQN 0 24 40 0 ({0:Red}NAME)[({0:i}NAME):((({0:I}NAME)[({0:i}NAME))/(\(3)))*(1+(({0:S}NAME)[({0:i}NAME)*{0:cos}NAME(({0:H}NAME)[({0:i}NAME)))/({0:cos}NAME(({0:\p}NAME)/(3)-({0:H}NAME)[({0:i}NAME)))) .EQN 0 29 41 0 ({0:Grn}NAME)[({0:i}NAME):\(3)*({0:I}NAME)[({0:i}NAME)-({0:Red}NAME)[({0:i}NAME)-({0:Blu}NAME)[({0:i}NAME) .TXT 8 -53 42 0 Cg a26.000000,26.250000,29 {\rtf1\ansi \deff0 {\fonttbl {\f0\fnil Arial;} {\f1\fnil Courier;} {\f2\fnil Symbol;} } {\plain {(2) If 120 < H < 240, then}} } .EQN 6 0 43 0 ({0:Red}NAME)[({0:i}NAME):({0:I}NAME)[({0:i}NAME)*(1-({0:S}NAME)[({0:i}NAME))/(\(3)) .EQN 0 23 44 0 ({0:Grn}NAME)[({0:i}NAME):((({0:I}NAME)[({0:i}NAME))/(\(3)))*(1+(({0:S}NAME)[({0:i}NAME)*{0:cos}NAME(({0:H}NAME)[({0:i}NAME)-2*({0:\p}NAME)/(3)))/({0:cos}NAME(({0:\p}NAME)/(1)-({0:H}NAME)[({0:i}NAME)))) .EQN 0 31 45 0 ({0:Blu}NAME)[({0:i}NAME):\(3)*({0:I}NAME)[({0:i}NAME)-({0:Red}NAME)[({0:i}NAME)-({0:Grn}NAME)[({0:i}NAME) .TXT 9 -54 46 0 Cg a26.000000,26.250000,29 {\rtf1\ansi \deff0 {\fonttbl {\f0\fnil Arial;} {\f1\fnil Courier;} {\f2\fnil Symbol;} } {\plain {(3) If 240 < H < 360, then}} } .EQN 6 2 47 0 ({0:Grn}NAME)[({0:i}NAME):({0:I}NAME)[({0:i}NAME)*(1-({0:S}NAME)[({0:i}NAME))/(\(3)) .EQN 0 22 48 0 ({0:Blu}NAME)[({0:i}NAME):((({0:I}NAME)[({0:i}NAME))/(\(3)))*(1+(({0:S}NAME)[({0:i}NAME)*{0:cos}NAME(({0:H}NAME)[({0:i}NAME)-4*({0:\p}NAME)/(3)))/({0:cos}NAME(5*({0:\p}NAME)/(3)-({0:H}NAME)[({0:i}NAME)))) .EQN 0 30 49 0 ({0:Red}NAME)[({0:i}NAME):\(3)*({0:I}NAME)[({0:i}NAME)-({0:Grn}NAME)[({0:i}NAME)-({0:Blu}NAME)[({0:i}NAME) .TXT 9 -54 50 0 Cg a67.000000,67.250000,70 {\rtf1\ansi \deff0 {\fonttbl {\f0\fnil Arial;} {\f1\fnil Courier;} {\f2\fnil Symbol;} } {\plain {======================================================= RGB_HSI.MCD}} } .EQN 8 51 51 0 {0:j}NAME~12 .EQN 2 -49 52 0 ({3,1}ö({0:B}NAME)[({0:j}NAME)ö({0:G}NAME)[({0:j}NAME)ö({0:R}NAME)[({0:j}NAME))={0}?_n_u_l_l_ .EQN 0 16 53 0 ({3,1}ö({0:I}NAME)[({0:j}NAME)ö({0:S}NAME)[({0:j}NAME)ö{0:\a}NAME*({0:H}NAME)[({0:j}NAME))={0}?_n_u_l_l_ .EQN 0 21 54 0 ({3,1}ö({0:Blu}NAME)[({0:j}NAME)ö({0:Grn}NAME)[({0:j}NAME)ö({0:Red}NAME)[({0:j}NAME))={0}?_n_u_l_l_ .EQN 12 14 55 0 {0:\a}NAME~(180)/({0:\p}NAME) .EQN 2 -53 56 0 {0:Max}NAME({0:x}NAME,{0:y}NAME,{0:z}NAME)~{0:if}NAME({0:x}NAME>{0:y}NAME,{0:if}NAME({0:x}NAME>{0:z}NAME,{0:x}NAME,{0:z}NAME),{0:if}NAME({0:y}NAME>{0:z}NAME,{0:y}NAME,{0:z}NAME)) .EQN 3 0 57 0 {0:Min}NAME({0:x}NAME,{0:y}NAME,{0:z}NAME)~{0:if}NAME({0:x}NAME<{0:y}NAME,{0:if}NAME({0:x}NAME<{0:z}NAME,{0:x}NAME,{0:z}NAME),{0:if}NAME({0:y}NAME<{0:z}NAME,{0:y}NAME,{0:z}NAME))