рдпрд╣ рд▓реЗрдЦ рдХрдИ рд╕реМ рдмрд╛рдЗрдЯ рд╡рдЬрди рд╡рд╛рд▓реЗ рдПрдХ рдЕрд╕реЗрдВрдмрд▓рд░ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред 420 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рдкреВрд░реНрдг рдХрд╛рд░реНрдп рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдпрд╣ рд╕рдм рд╕рд╛рдорд╛рди 256 рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рд░рдЯрдирд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдо рдЖрдк рд╡реАрдбрд┐рдпреЛ рдкрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдЦ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдХрд╛рдордХрд╛рдЬ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
рдЪреЗрддрд╛рд╡рдиреА: рдпрджрд┐ рдЖрдкрдХреЛ рдорд┐рд░реНрдЧреА рдХреЗ рджреМрд░реЗ рдкрдбрд╝рддреЗ рд╣реИрдВ - рддреЛ рди рджреЗрдЦреЗрдВред
Win7 рдФрд░ Vista рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред Windows XP / 2000/98 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:
рдбреНрд░реЙрдкрдмреЙрдХреНрд╕ рдореЗрдВ k29.com (256 рдмрд╛рдЗрдЯреНрд╕)
рдбрд╛рдЙрдирд▓реЛрдб рд╕реНрд░реЛрдд:
рдбреНрд░реЙрдкрдмреЙрдХреНрд╕ рдореЗрдВ k29.asm (FASM рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рди)
рдирд┐рдпрдВрддреНрд░рдг рдХреБрдВрдЬреА:
1. рдЖрд░, рдЬреА, рдмреА - рд░рдВрдЧ рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдФрд░ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ
2. <-, рдЕрдВрддрд░рд┐рдХреНрд╖, -> - рд░реЛрдЯреЗрд╢рди рдХреА рджрд┐рд╢рд╛ рдФрд░ рдЧрддрд┐ рдХреЛ рдмрджрд▓реЗрдВ
3. рдЙрддреНрддрд░ рдкреНрд░рджреЗрд╢, рдиреАрдЪреЗ - рд╕рд░реНрдкрд┐рд▓ рдХреЗ рдкреИрдорд╛рдиреЗ рдХреЛ рдмрджрд▓реЗрдВ
4. * 1,1,2,3,4,5,6,7,8,9 - рд╕рд░реНрдкрд┐рд▓ рдореЗрдВ рд╢рд╛рдЦрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрджрд▓реЗрдВ
5. рдИрдПрд╕рд╕реА - рдирд┐рдХрд╛рд╕
рдЙрдкрд╕рдВрд╣рд╛рд░
рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдпрд╣ рд▓реЗрдЦ рдореЗрд░реЗ рдбреНрд░рд╛рдлреНрдЯ рдореЗрдВ рдкрдбрд╝рд╛ рд╣реИред рдлрд┐рд░ рднреА рдмреНрд▓реЙрдЧрд░ рдкрд░ рдбреНрд░рд╛рдлреНрдЯ рдбреНрд░рд╛рдлрд╝реНрдЯ рдореЗрдВред рдФрд░ рдЖрдЬ рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЕрдЧрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрднреА рдЦрддреНрдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рддреЛ рдРрд╕рд╛ рдХрднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдореИрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛, рдЕрдВрдд рдореЗрдВ рдореИрдВ рдереЛрдбрд╝рд╛ рдЯреВрдЯ рдЧрдпрд╛ рдФрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛) рд╣реБрд░реНрд░реЗ !!!
1. рд╢реБрд░реБрдЖрдд
рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рд╕реЗ рд╣реА рд▓реЛрдХрддрдВрддреНрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рд╣реА рд╣реИ, рдЦрд╛рд╕рдХрд░ рд╕реИрдХрдбрд╝реЛрдВ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рд╢реНрд░реЗрдгрд┐рдпрд╛рдВред DirectX / OpenGL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 64 рдХрд┐рд▓реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрдирд╛ рдПрдХ рдмрд╛рдд рд╣реИ, рдФрд░ рдХрд╛рдлреА рджреВрд╕рд░реА рдмрд╛рдд - 512/256/128 рдмрд╛рдЗрдЯреНрд╕ рддрдХ, рд╕реАрдзреЗ рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЖрджрд┐ред рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╣рдЬ рд╕реНрддрд░ рдкрд░ рдХреЛрдбрд╛рдВрддрд░рдХ рдХреЗ рдЬреНрдЮрд╛рди рдФрд░ рд╕рдордЭ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдорд╢реАрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреА рд╕рднреА рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рдХреЛ рд╕рдордЭрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрднреА рдЕрд╕реЗрдВрдмрд▓рд░ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рд╣рдо рдорд╛рдиреЗрдВрдЧреЗ рдХрд┐ рдпрд╣
рд▓реЗрдЦ рдореЗрд░реА рддрд░рд╣
рдЕрд╕реЗрдВрдмрд▓рд░ рдореЗрдВ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖рд┐рдд рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ред
2. рд▓рдХреНрд╖реНрдп рдЪрдпрди
рдЕрдм рдЖрдкрдХреЛ рдПрдХ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдФрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рддреБрд░рдВрдд рдкрд╛рд╕реНрдХрд▓ рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрдХреВрд▓ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдЖрдпрд╛ред рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЕрд╕рд╣рдорддрд┐ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдерд╛ (2 рдХреЛрдб рд╕реНрдХреНрд░реАрди - 50 рд▓рд╛рдЗрдиреЗрдВ), рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЗрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдХрд╛рд░реНрдпрдХреНрд░рдо рдиреЗ рдЧреНрд░рд╛рдлрд┐рдХ рдореЛрдб (320x200x256) рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдореЗрдВ рдПрдХ рдШреВрд░реНрдгрди рд╕рд░реНрдкрд┐рд▓ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ред рд╕рднреА 256 рд░рдВрдЧреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдПрдХ рдЪрд┐рдХрдиреА рд░рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдПред рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдерд╛ рдХрд┐ рд╕рд░реНрдкрд┐рд▓ рдмрд┐рдирд╛ рдХрд┐рд╕реА рджреГрд╢реНрдп рдХреЗ рдШреВрдорддреЗ рд╣реБрдП рдЪрд▓рддрд╛ рд╣реИред рдпрд╣ рдХрдИ рд╡реАрдбрд┐рдпреЛ рдкреГрд╖реНрдареЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рджреНрд╡рд╛рд░рд╛ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрджрд┐ рд░реЛрдЯреЗрд╢рди рдХреА рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рд╕рд░реНрдкрд┐рд▓ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЧрдгрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреЛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рджреЗрд░реА рдХрд╛ рднреА рдкрд░рд┐рдЪрдп рджреЗрддреА рд╣реИред рд╕рд░реНрдкрд┐рд▓ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 3-5 рдХреНрд░рд╛рдВрддрд┐рдпреЛрдВ рдХреА рдЧрддрд┐ рд╕реЗ рдШреВрдорддрд╛ рд╣реИ (рдЪрд┐рддреНрд░ 2.1 рджреЗрдЦреЗрдВ)ред

[рдЪрд┐рддреНрд░ред 2.1ред рддреАрди "рд╣рд╛рдереЛрдВ" рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░реНрдкрд┐рд▓ рдХрд╛ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯрдФрд░ рдкреВрд░реА рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ рд╕рд░реНрдкрд┐рд▓ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЦреАрдВрдЪрд╛ рдЧрдпрд╛ рдерд╛ - рдЬрдм рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рд╣реБрдЖред рд╕рд░реНрдкрд┐рд▓ рдЦреАрдВрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдХрд╛рд░реНрдпрдХреНрд░рдо рдиреЗ рд░рдВрдЧ рдХреЛ рдкреИрд▓реЗрдЯ рдореЗрдВ рд░рдВрдЧреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕реЗ рддреБрд░рдВрдд рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд╛рд░реНрдпрдХреНрд░рдо рдиреЗ рд╕рд░реНрдкрд┐рд▓ рдХреЗ рд░рдВрдЧ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рд░реЛрдЯреЗрд╢рди рдХреА рджрд┐рд╢рд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ред рдХреЗрд╡рд▓ рдЖрда рд░рдВрдЧ:
0 | # 000000 | рдХрд╛рд▓рд╛ (рд╕рд░реНрдкрд┐рд▓ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛) |
1 | # 0000FF | рдиреАрд▓рд╛ |
2 | # 00FF00 | рдЪрдордХреАрд▓рд╛ рд╣рд░рд╛ |
3 | # 00FFFF | рдлрд╝рд┐рд░реЛрдЬрд╝рд╛ |
4 | # Ff0000 | рд▓рд╛рд▓ |
5 | # FF00FF | рдмреИрдВрдЧрдиреА |
6 | # FFFF00 | рдкреАрд▓рд╛ |
7 | #FFFFFF | рд╕рдлреЗрдж |
рдЪреВрдВрдХрд┐ рд╕реНрдХреНрд░реАрди рдкрд░ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд▓рд┐рдП RGB рдХрд▓рд░ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрди рдЖрда рд░рдВрдЧреЛрдВ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рд░рдВрдЧ рдШрдЯрдХреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (3 рдбреЗрдЯрд╛ рдмрд┐рдЯреНрд╕ 8 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рдиреЛрдВ рдХреЛ рдПрдирдХреЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рдХрд╛рд░реНрдпрдХреНрд░рдо рдиреЗ рдЗрд╕реА рд░рдВрдЧ рдШрдЯрдХреЛрдВ рдХреЛ рдЪрд╛рд▓реВ / рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 'рдЖрд░', 'рдЬреА' рдФрд░ 'рдмреА' рдХреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд╛рд╕реНрдХрд▓ рдореЗрдВ рдЯрд░реНрдмреЛ рдкрд╛рд╕реНрдХрд▓ 7.0 рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЛрдбрд╛рдВрддрд░рдХ рдЖрд╡реЗрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреИрд▓реЗрдЯ рд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЖрд░рдЬреАрдмреА рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдпред рд╕реНрдХреВрд▓ рдмрд╛рд░ рдХреЛрдб (рд╕реНрд╡рд░реВрдкрдг рдЗрддрдирд╛ рдмрджрд▓ рдЧрдпрд╛ рдХрд┐ рдХрд┐рд╕реА рдХреЗ рдорд╛рдирд╕ рдХреЛ рдШрд╛рдпрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛):
program P_16_B_4; uses crt,graph,MUSE_OTH,MT_MAIN; const koef1=3; koef2=3; var gd,gm,gmx,gmy,i,flag,x0,y0,x,y:integer; r,alpha:extended; k,int:longint; key:char;rr,gg,bb:byte; ints:string; mas:array[0..255,1..3] of byte; BEGIN gd:=installuserdriver('SVGA256m.BGI',NIL);gm:=2; initgraph(gd,gm,''); gmx:=getmaxx; gmy:=getmaxy; flag:=1;k:=1; for i:=0 to 255 do begin setRGBpalette(i,k,k,k); mas[i,1]:=k;mas[i,2]:=k;mas[i,3]:=k; k:=k+flag; if k=63 then flag:=-1 else if k=0 then flag:=1; end; setcolor(63); settextstyle(1,horizdir,2); settextjustify(centertext,centertext); outtextxy(gmx div 2,gmy div 2-textheight('!<06@')*2 div 2, '!<06@ freeware'); outtextxy(gmx div 2,gmy div 2+textheight('!<06@') div 2, '! ! ! Press "R", "G", "B", " " or "Esc" ! ! !'); x0:=gmx div 2; y0:=gmy div 2; r:=400; repeat alpha:=0; repeat x:=round(x0+r*cos(alpha/180*Pi)); y:=round(y0-r*sin(alpha/180*Pi)); putpixel(x,y,round(r*koef2+alpha*256/360*koef1/2) mod 128); alpha:=alpha+20/(r+1); until alpha>=360; if keypressed then halt; r:=r-1; until r<=0; k:=1;flag:=-1;rr:=1;gg:=1;bb:=1;int:=0; repeat str(int SHR 2,ints); while byte(ints[0])<4 do insert('0',ints,1); if int and 3=0 then SAVE_MONITOR((gmx+1) div 2-75,(gmy+1) div 2-75,(gmx+1) div 2+74, (gmy+1) div 2+74,'c:\AVATAR\'+ints+'.bmp'); if keypressed then begin key:=readkey; if key=' ' then flag:=-flag else if upcase(key)='R' then rr:=not(rr) and 1 else if upcase(key)='G' then gg:=not(gg) and 1 else if upcase(key)='B' then bb:=not(bb) and 1 else if key=#27 then break; end; for i:=0 to 127 do setRGBpalette(i,mas[(i+k+512) mod 256,1]*rr, mas[(i+k+512) mod 256,2]*gg, mas[(i+k+512) mod 256,3]*bb); inc(k,flag);k:=k mod 256; inc(int); until false; closegraph; END.
3. рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╡рд┐рдХрд╛рд╕
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдЬрд╛рдиреЗрдВ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреИрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдХрд┐рди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХрд╛ рдФрдкрдЪрд╛рд░рд┐рдХ рд╡рд┐рд╡рд░рдг:
1) рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреИрд▓реЗрдЯ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рднрд░рдиреЗ: (0,0,0) ... (63,63,63) ... (0,0,0)ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдкреИрд▓реЗрдЯ рдХреЗ 256 рд╕реЗ рдЕрдзрд┐рдХ рддрддреНрд╡, рд░рдВрдЧ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд╛рд▓реЗ рд╕реЗ рд╕рдлреЗрдж рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рдХрд╛рд▓реЗ рд░рдВрдЧ рдореЗрдВ рд▓реМрдЯ рдЖрддрд╛ рд╣реИред рдЗрд╕ рдЧреНрд░рд╛рдлрд┐рдХ рдореЛрдб рдореЗрдВ, 256 рд░рдВрдЧреЛрдВ рддрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд░рдВрдЧ рдореЗрдВ рддреАрди рд░рдВрдЧ рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВред рд░рдВрдЧ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЫрд╣ рдмрд┐рдЯреНрд╕ (0 рд╕реЗ 63 рдХреА рд╕рдВрдЦреНрдпрд╛) рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рдлреЗрдж рд░рдВрдЧ рд░рдВрдЧ рдШрдЯрдХреЛрдВ (63.63.63) рдХреЗ рд╡реЗрдХреНрдЯрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреНрд░рдорд╢рдГ рдХрд╛рд▓реЗ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП, (0.0.0)ред
2) рдПрдХ рд╕рд░реНрдкрд┐рд▓ рдЦреАрдВрдЪрдирд╛ рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рднреА рдкрд┐рдХреНрд╕рд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдорд╛рд░реНрдЧ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рднрд░рддрд╛ рд╣реИред рд╕рд░реНрдкрд┐рд▓ рд╕реВрддреНрд░ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ - рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╡реЗрдХреНрдЯрд░ (рдореВрд▓реНрдпреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА: рджреВрд░реА рдФрд░ рдХреЛрдг) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдХреЗрдВрджреНрд░ рд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд░рдВрдЧ рдХреЗрд╡рд▓ рд╡реЗрдХреНрдЯрд░ рдХреА рд▓рдВрдмрд╛рдИ рдФрд░ рдЪрдпрдирд┐рдд рдЧреБрдгрд╛рдВрдХ рд╡рд╛рд▓реЗ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдХреЛрдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдЧреБрдгрд╛рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрдВрдЯрдиреА, рдПрдХ рд╕рд░реНрдкрд┐рд▓ рдХреА "рд╢рд╛рдЦрд╛рдУрдВ" рдФрд░ рдореЛрдбрд╝ рдХреА рдПрдХ рдЕрд▓рдЧ рдбрд┐рдЧреНрд░реА рджреЛрдиреЛрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
3) рдкреИрд▓реЗрдЯ рдХреА рдЪрдХреНрд░реАрдп рдкрд╛рд░реА рдПрдХ рд╕реНрдерд┐рддрд┐ рд╕реЗред рдпрд╣ рд╕рд░реНрдкрд┐рд▓ рд░реЛрдЯреЗрд╢рди рдХрд╛ рднреНрд░рдо рджреЗрддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, 256 рд░рдВрдЧ рддрддреНрд╡реЛрдВ рдХреЛ рдмрджрд▓рддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдкреВрд░реНрдг рдХреНрд░рд╛рдВрддрд┐ рдХрд╛ 1 / (256 * k) рд╕рд░реНрдкрд┐рд▓ рдмрджрд▓рд╛рд╡ рдорд┐рд▓рддрд╛ рд╣реИред рдЬрд╣рд╛рдБ k рд╕рд░реНрдкрд┐рд▓ рдХреА "рд╢рд╛рдЦрд╛рдУрдВ" рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рд╕рд░реНрдкрд┐рд▓ рдХреЛ рдШреБрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рднреА рдкрд┐рдХреНрд╕рд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдкрд░рд╣реЗрдЬ рдХрд┐рдпрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдПрдХ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдирд╣реАрдВ рд╣рдЯреЗрдВрдЧреЗ, рдмрджрд▓рд╛рд╡ рдХреА рджрд┐рд╢рд╛ рдФрд░ рджрд┐рд╢рд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреВрд░реНрдгрд╛рдВрдХ рдЪрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рд╣рдореЗрдВ рд╕рд░реНрдкрд┐рд▓ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреА рджрд┐рд╢рд╛ рдФрд░ рдЧрддрд┐ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
4) рдЯреЗрд╕реНрдЯ рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ред R, G, рдФрд░ B рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рджрдмрд╛рдиреЗ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреБрдВрдЬреА рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд░рдВрдЧ рдШрдЯрдХ рдЪрд╛рд▓реВ рдпрд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рджрд╛рдПрдВ / рдмрд╛рдПрдВ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рджрдмрд╛рдиреЗ рд╕реЗ рдЪрд░ рдХреЗ рдореВрд▓реНрдп рдореЗрдВ рд╡реГрджреНрдзрд┐ / рдШрдЯ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреИрд▓реЗрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд┐рдВрджреБ 3 рдкрд░ рдЬрд╛рдПрдВред
4. рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдЦреИрд░, рдЕрдм рд╣рдо рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓рд░ рдореЗрдВ рдХреМрди рд╕реЗ рдХрд╛рд░реНрдп рд▓рд┐рдЦрдиреЗ рд╣реИрдВред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпреЗ рд╣реЛрдВрдЧреЗ: рдкреНрд░рд╛рд░рдВрднрд┐рдХ рднрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп, рд╕рд░реНрдкрд┐рд▓ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп, рдкреИрд▓реЗрдЯ рдХрд╛ рдЪрдХреНрд░реАрдп рд╢рд┐рдлреНрдЯ рдлрд╝рдВрдХреНрд╢рди, рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп, рдЬреЛ рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреАрдмреЛрд░реНрдб рдирд┐рдпрдВрддреНрд░рдг рдХреБрдВрдЬреА рдкрд░ рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред рдПрд▓реНрдЧреЛрд░рд┐рдердо рдлрд╝реНрд▓реЛрдЪрд╛рд░реНрдЯ:
[рдЪрд┐рддреНрд░ред 4.1ред рдкреНрд░рд╡рд╛рд╣ рд╕рдВрдЪрд┐рддреНрд░]рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рдЙрдкрд▓рдмреНрдз рдЕрд╕реЗрдВрдмрд▓рд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рдХреНрд░рд┐рд╕ рдХрд╛рд╕реНрдкрд░реНрд╕рдХреА рдФрд░ рдИрд╡рд╛ рд░реЛрдХреЛ рдХреА рдХрд┐рддрд╛рдм "рдж рдЖрд░реНрдЯ рдСрдл рдбрд┐рд╕реИрдореНрдмреЗрдВрдмрд▓рд┐рдВрдЧ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдПрдлрдПрдПрд╕рдПрдо рд╕рдВрдХрд▓рдХ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЕрдкрдиреА рдкрд╕рдВрдж рдмрдирд╛рдИред рдореИрдВ рдиреЛрдЯрдкреИрдб ++ рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦреВрдВрдЧрд╛, рдФрд░ рдЗрд╕рдореЗрдВ рд╕реЗ рдореИрдВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд▓реЗрдЦ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░реВрдВрдЧрд╛ред
рдЦреИрд░, рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
4.1ред рдкреИрд▓реЗрдЯ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп
рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреИрд▓реЗрдЯ рднрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ: (0,0,0), ... (63,63,63), ... (0,0,0)ред рдпрд╣ рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ 127 рд╣реИрдВ, рд╕рднреА 256 рддрддреНрд╡реЛрдВ рдХреА рд╕рдорд╛рди рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо 2 рд╕рдорд╛рди рддрддреНрд╡реЛрдВ рдХреЛ рднрд░реЗрдВрдЧреЗ: (0,0,0), (0,0,0), ... (63,63,63), (63 , 63.63), ... (0,0,0), (0,0,0)ред рд╣рдо рдПрдХ рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдФрдкрдЪрд╛рд░рд┐рдХ рднрд╛рд╖рд╛ рдореЗрдВ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
for (int i = 0; i <= 127; i++) { setPalette(i, i/2, i/2, i/2); setPalette(255-i, i/2, i/2, i/2); }
рдЕрдм рдХреЛрдб рдХреЛрдб рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде:
A. рд╣рдо рд╕реНрдЯреИрдХ рдкрд░ рд╕реЗрд╡ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдЯреИрдХ рд╕реЗ рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдлрдВрдХреНрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
B. CX рд░рдЬрд┐рд╕реНрдЯрд░ 0 рд╕реЗ 127 рд╕рдорд╛рд╡реЗрд╢реА рдЪрдХреНрд░ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред
C. рд╣рдо рдкреИрд░рд╛рдореАрдЯрд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕реЗрдЯрдкрд▓реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред рдПрдПрд▓ рдореЗрдВ рд╣рдо рд░рдВрдЧ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдПрдПрдЪ рдореЗрдВ рд╣рдо рдЖрдзреЗ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдмрд░рд╛рдмрд░ рдЪрдордХ рдореВрд▓реНрдп рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред
D. рд╕рднреА рдмрд┐рдЯреНрд╕ рдХреЗ рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдСрдкрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ (255-i) рдмрджрд▓реЗрдВ рдФрд░ рд╕реЗрдЯрдкрд▓реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред
4.2ред рд╕рд░реНрдкрд┐рд▓ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛рд░реНрдп
рдЪрд▓реЛ рдврд╛рд▓ рд╕рд░реНрдкрд┐рд▓ рд╡рд┐рд╡рд░рдг рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВред
рдХреЗрд╡рд▓ рддреНрд░рд┐рдЬреНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдврд╛рд▓ рд╣рд▓рдХреЛрдВ рджреЗрддрд╛ рд╣реИ:
pixel[x][y] = k1*sqrt(x*x + y*y);
[рдЪрд┐рддреНрд░ред 4.1ред рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рд╕рд░реНрдХрд┐рд▓]рдХреЗрд╡рд▓ рдХреЛрдг рдкрд░ рдирд┐рд░реНрднрд░ рдПрдХ рдХрд╛рд░реНрдп рдХреЗрдВрджреНрд░ рд╕реЗ рдврд╛рд▓ рдХрд┐рд░рдгреЗрдВ рджреЗрддрд╛ рд╣реИ:
pixel[x][y] = k1*arctan(x/y);
[рдЪрд┐рддреНрд░ред 4.2ред рдврд╛рд▓ рдХрд┐рд░рдгреЗрдВ]рдлрд╝рдВрдХреНрд╢рди, рдЬреЛ рддреНрд░рд┐рдЬреНрдпрд╛ рдФрд░ рдХреЛрдг рдкрд░ рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд╣рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдврд╛рд▓ рд╕рд░реНрдкрд┐рд▓ рджреЗрдЧрд╛:
pixel[x][y] = k1*sqrt(x*x + y*y) + k2*k3*arctan(x/y));
[рдЪрд┐рддреНрд░ред 4.3ред рд╕реНрдирд╛рддрдХ рд╕рд░реНрдкрд┐рд▓]рд╕рд░реНрдкрд┐рд▓ рдХреЗ 360 рдбрд┐рдЧреНрд░реА рд╕рд╣реА рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЧреБрдгрд╛рдВрдХ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЧреБрдгрд╛рдВрдХ k1 рдХреЗрд╡рд▓ рд╕рд░реНрдкрд┐рд▓ рдХреЗ рдореЛрдбрд╝ рдХреА рдбрд┐рдЧреНрд░реА рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред 360 рдбрд┐рдЧреНрд░реА рдХреА рд╕рд╣реА рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рдЧреБрдгрд╛рдВрдХ k3 рдЪреБрдирддреЗ рд╣реИрдВ:
k3 = 128 / 3.1415927;
[рдЪрд┐рддреНрд░ред 4.4ред рд╕рд╣реА 360 рдбрд┐рдЧреНрд░реА рдврд╛рд▓ рд╕рд░реНрдкрд┐рд▓]рдЧреБрдгрд╛рдВрдХ k2 рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рд▓реЗрдЧрд╛: 1, 2, 3, 4 ... рдЗрд╕ рдЧреБрдгрд╛рдВрдХ рдХреЛ рдмрджрд▓рддреЗ рд╣реБрдП, рд╣рдореЗрдВ рд╕рд░реНрдкрд┐рд▓ рдкрд░ рд╕рдорд╛рди рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╢рд╛рдЦрд╛рдПрдВ рдорд┐рд▓рддреА рд╣реИрдВред рдПрдХ, рджреЛ рдФрд░ рдкрд╛рдВрдЪ рдХреЗ рдмрд░рд╛рдмрд░ k2 рдХреЗ рд╕рд╛рде рдврд╛рд▓ рд╕рд░реНрдкрд┐рд▓ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдЕрдВрдЬреАрд░ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред 4.5, 4.6 рдФрд░ 4.7:
[рдЪрд┐рддреНрд░ред 4.5ред рдПрдХрд▓ рд╢рд╛рдЦрд╛ рд╕рд░реНрдкрд┐рд▓][рдЪрд┐рддреНрд░ред 4.6ред рджреЛ рд╢рд╛рдЦрд╛рдУрдВ рд╡рд╛рд▓рд╛ рд╕рд░реНрдкрд┐рд▓][рдЪрд┐рддреНрд░ред 4.7ред рдкрд╛рдВрдЪ-рд╢рд╛рдЦрд╛ рд╕рд░реНрдкрд┐рд▓]рдЫрджреНрдо рднрд╛рд╖рд╛ рд╕рд░реНрдкрд┐рд▓ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛрдб:
(рд╢реВрдиреНрдп рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрди рд╕рд╣рд┐рдд рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░)
for (int y = 0; y < 200; y++) for (int x = 0; x < 320; x++) { y -= 100; x -= 160; int color = k1*sqrt(x*x + y*y) + k2*128/3.1415927*arctan(x/y); y += 100; x += 160; pixel[x][y] = color; }
рдЕрдм рд╣рдо рдХреЛрдбрд╛рдВрддрд░рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ | рдмреА | рд╕реА | рдбреА | рдП |
 |  |  |  |  |
A. рд╣рдо рд╕реНрдЯреИрдХ рдкрд░ рд╕реЗрд╡ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдЯреИрдХ рд╕реЗ рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдлрдВрдХреНрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
B. рд░рдЬрд┐рд╕реНрдЯрд░ рдПрдПрдХреНрд╕ 0 рд╕реЗ 199 рддрдХ рдХреЗ рдЪрдХреНрд░ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред
C. рдмреАрдПрдХреНрд╕ рд░рдЬрд┐рд╕реНрдЯрд░ 0 рд╕реЗ 319 рддрдХ рдХреЗ рдЪрдХреНрд░ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред
D. рд╕рд╣реЗрдЬреЗрдВ AX рдФрд░ BX рд╕реНрдЯреИрдХ рдкрд░ред рд╣рдо рд╕реНрдХреНрд░реАрди рдкрд░ рд╕рд░реНрдкрд┐рд▓ рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, 320x200 рдХреЗ рдПрдХ рд╕рдВрдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рд╣рдо рдХреЗрдВрджреНрд░ рдХреЛ рдордзреНрдп рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ - (160, 100)ред рд╕реНрдЯреИрдХ рд╕реЗ AX рдФрд░ BX рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
рдИред рд╣рдо рд╡рд░реНрдЧ рдПрдПрдХреНрд╕, рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдПрдПрдХреНрд╕ рдФрд░ рдмреАрдПрдХреНрд╕ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реНрд╡реИрдк рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╕реЗ рд╕реНрдХреНрд╡рд╛рдпрд░ рдПрдПрдХреНрд╕ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рдПрдПрдХреНрд╕ рдФрд░ рдмреАрдПрдХреНрд╕ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реИрдВред рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдбреАрдПрдХреНрд╕ рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВред
рд░реВрдЯ рдХреА рдЧрдгрдирд╛ рдЖрд╡реЗрджрди рдХреЛрдб рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдмрд▓рд┐рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реНрдЯреИрдХ рдкрд░ рдмрдЪрдд рдХрд░рдирд╛ рдФрд░ рд╡реЗрдХреНрдЯрд░ рдХреА рд▓рдВрдмрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╕рдордп рд░рдЬрд┐рд╕реНрдЯрд░ AX рдФрд░ BX рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛:
push ax push bx ; dx = ax^2 + bx^2 mul ax, ax xchg ax, bx mul ax, ax add ax, bx mov dx, ax pop bx pop ax
рдЕрдм рдХреЛрдб рдЬреЛ рджрд┐рдП рдЧрдП рдкрд╛рдк рдФрд░ рдХреЛрд╕ рдХреЗ рдХреЛрдг рдЙрдЪреНрдЪрд╛рд░рдг рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ:
; * k2 ; dx += arctan(alpha * k2) mov [cos], ax mov [sin], bx finit fild word [cos] fild word [sin] fpatan fimul word [k2] fimul word [glad1] fidiv word [glad2] fist word [tmp] add dx, [tmp]
4.3ред рдЯреЗрд╕реНрдЯ рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕
; mov ah, 0Bh ; AX := 0B00h int 21h cmp al, 0ffh jmp_loop_pal_exit: jne loop_pal_out ; mov ah, 08h int 21h label_push_space: cmp al, ' ' jne label_push_left mov ch, 0 label_push_left: cmp al, 75 jne label_push_right dec ch .......
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рднреА рдХреЛ рдорд┐рд▓рд╛ рд╣реИ)) рд╡рд╣реА рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд╣рд┐рдд рд╣реИ:
http://codepad.org/mEDX1Z2XрдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рдпрдВрддреНрд░рдг рдХреБрдВрдЬреА рдХреЛ рд╣рдЯрд╛рдХрд░ рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдФрд░ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рд╕рднреА рдирд┐рдпрдВрддреНрд░рдг рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ 128 рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдлрд┐рдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдмрд┐рдирд╛ рдпрд╣ рдЗрддрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред