}
// edge 3-1
if ( fVal [k+1]!=fVal [k+n1] ) {
t = (z-fVal[k+n1])/(fVal[k+1]-fVal[k+n1]);
if ( t >= 0 && t <= 1 ) {
p [count ].x = (int)( x + t*xStep ); p [count++].y = (int)( y + (l-t)*yStep );
}
}
if ( count > 0 )
line(p[0].x,p[0].y,p[1].x,p[1].y );
if ( count > 2 ) // line through vertex
line ( p [1].x, p [1].y, p [2].x, p [2].y );
}
}
delete fVal;
}

3. Графические примитивы

Упражнения Напишите процедуру построения графика функции, заданной в полярных координатах

р = р{<р\а<<р<р .

Напишите процедуру построения графика функции, заданной параметрически х = х(/), у = у(*), а<1<Ь

Постройте палитру (256 цветов), соответствующую цветам радуги (красному, оранжевому, желтому, зеленому, голубому, синему, фиолетовому) с плавными переходами между основными цветами.

Напишите процедуру построения по заданному набору чисел диаграммы соотношения в виде прямоугольников различной высоты.

Напишите процедуру построения по заданному набору чисел круговой диаграммы.

Реализуйте игру "Жизнь" Конвея: Имеется прямоугольная решетка из ячеек, в каждой из которых может находиться живая клетка. Каждая ячейка имеет 8 соседних с ней ячеек. Закон перехода на следующий временной шаг выглядят таким образом: каждая клетка, у которой две или три соседних, выживает и переходит в следующее поколение; клетка, у которой больше трех соседей, погибает от "перенаселенности". Клетка, у которой меньше двух соседей, умирает от одиночества; если у пустой ячейки ровно три соседних, то в ней зарождается жизнь, т. е. появляется живая клетка.

Необходимо реализовать переход от одного поколения к следующему, при этом для определения цвета, которым выводится клетка, желательно использовать ее возраст. В качестве палитры можно брать либо оттенки серого цвета, либо палитру из цветов радуги. Ниже приводятся наиболее интересные комбинации (рис. 3.5).

Глава 4

РАБОТА С ОСНОВНЫМИ ГРАФИЧЕСКИМИ

УСТРОЙСТВАМИ

Несмотря на наличие различных графических библиотек (например, в составе компилятора Borland С++), часто возникает необходимость прямой работы с тем или иным графическим устройством. Это может быть связано как с тем, что библиотека не поддерживает соответствующее устройство (например, мышь или принтер), так и с тем, что работа с данным устройством организована недостаточно эффективно и всех его возможностей не использует.


⇐ Предыдущая| |Следующая ⇒