Нужно, чтобы на системе координат откладывалась точка, соответствующая определенному цвету - QBasic
Формулировка задачи:
нужно чтобы на системе координат откладывалась точка соответствующая определенном цвету) система координат- плоскость.. прочитал http://www.hi-edu.ru/e-books/xbook322/01/part-007.htm#i1614 вот это пособие,но так и не разобрался какие формулы нужно использовать.помогите, может кто сталкивался) Спасибо за внимание)
Решение задачи: «Нужно, чтобы на системе координат откладывалась точка, соответствующая определенному цвету»
textual
Листинг программы
DIM r%(0 TO 151, 0 TO 151) DIM g%(0 TO 151, 0 TO 151) DIM b%(0 TO 151, 0 TO 151) x = 75 y = 70 s = 100 h = s * SQR(3) * .5 h1 = s / 2 h2 = h - h1 FOR i = x - s / 2 TO x + s / 2 FOR j = (y - h2) + 2 * h * ABS(x - i) / s TO y + h1 br = (1 - SQR((x - s / 2 - i) ^ 2 + (y + h1 - j) ^ 2) / s) * 255 v = (1 - SQR((x + s / 2 - i) ^ 2 + (y + h1 - j) ^ 2) / s) * 255 p = (1 - SQR((x - i) ^ 2 + (y - h2 - j) ^ 2) / s) * 255 ' br = br + 100 ' p = p + 50 ' IF p > 255 THEN p = 255 ' SELECT CASE v ' Case 0 TO 102 ' c3 = 0 ' c1 = br * (101 - v) / 101 ' c2 = br - c1 ' Case 102 TO 203 ' c1 = 0 ' c2 = br * (203 - v) / 101 ' c3 = br - c2 ' CASE 204 TO 255 ' c2 = 0 ' c3 = br * (255 - v) / 51 ' c1 = br - c3 ' End SELECT ' av = (c1 + c2 + c3) / 3 ' p = av - (av - c1) * p / 255 'c1 ' v = av - (av - c2) * p / 255 'c2 ' br = av - (av - c3) * p / 255 'c3 r%(i, j) = p g%(i, j) = v b%(i, j) = br NEXT j NEXT i OPEN "ColTri.bmp" FOR BINARY AS #1 st = 1 DATA 54, 0, 0, 0, 40, 0, 0, 0, 150, 0, 0, 0, 150, 0, 0, 0, 1, 0, 24, 0 t% = ASC("B") PUT #1, st, t%: st = st + 1 t% = ASC("M") PUT #1, st, t%: st = st + 1 t% = 0 FOR i = 1 TO 8 PUT #1, st, t%: st = st + 1 NEXT i FOR i = 1 TO 20 READ t% PUT #1, st, t%: st = st + 1 NEXT i t% = 0 FOR i = 1 TO 24 PUT #1, st, t%: st = st + 1 NEXT i st=55 FOR j = 1 TO 150 FOR i = 1 TO 150 PUT #1, st, b%(i, j) PUT #1, st+1, g%(i, j) PUT #1, st+2, r%(i, j) st=st+3 NEXT i st=st+2 NEXT j CLOSE #1
Объяснение кода листинга программы
- Задана задача по кодированию цвета на системе координат.
- Использован язык программирования QBasic.
- Код содержит объявление и инициализацию трех массивов: r%, g% и b%, каждый размером 151х151.
- Заданы начальные координаты точки (x,y) = (75,70).
- Задана ширина области (s) = 100.
- Вычислены размеры области в пикселях (h1 и h2).
- Запущен цикл, который проходит по всем пикселям области с заданными координатами (x-s/2..x+s/2; y-(h2+2habs(x-i)/s)..y+h1).
- Для каждого пикселя вычисляются значения цветов (br, v, p) по формулам, связанным с расстоянием от центра области до пикселя и от пикселя до наблюдателя.
- Цвет пикселя (r,g,b) вычисляется по формуле (c1+c2+c3)/3, где c1,c2,c3 - значения цветов, вычисленные на предыдущем шаге.
- Полученные значения цветов (r,g,b) записываются в соответствующие массивы.
- Закрывается область, открытая для записи данных.
- Открывается файл
ColTri.bmp
для записи данных. - Записываются заголовки файла.
- Записываются данные о цветах пикселей в файл.
- Файл закрывается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д