4.5. Функции для визуализации графических примитивов
Функции этой группы предназначены для рисования прямых и ломаных линий,
окружностей и отрезков дуг.
Вывод строки текста
BOOL CDC::TextOut (int x, int y, const CString& str)
- вывод строки текста. Параметры:
(x, y) - координаты для вывода текста
str - строка текста.
Например, вывод подписей к осям:
pDC->SetBkMode(TRANSPARENT);
pDC->TextOut( 95, 15,"x");
pDC->TextOut( 5, 105,"y");
|
|
Рисование точки
COLORREF CDC::SetPixel (int x, int y, COLORREF crColor)
- рисование точки. Параметры:
(x, y) - координаты точки
color - цвет точки, задается в виде структуры RGB(red,
green, blue) ,
где red, green, blue - величина красного, зеленого и синего
цвета в диапазоне от 0 до 255.
Например, вывод точечных диаграмм:
for( ... ) // цикл по радиальной координате
{
for( ... ) // цикл по угловой координате
{
// вычисление x и y
...
// рисование точки
pDC->SetPixel(int(x*100), int(y*100), RGB(255,0,0));
}
}
|
|
Рисование линии
При рисовании линий цвет и стиль линии определяются текущим карандашом
CPen .
CPoint CDC::MoveTo (int x, int y) - перемещает курсор
к указанной точки без рисования. Параметры:
(x, y) - координаты нового положения курсора.
BOOL CDC::LineTo (int x, int y) - рисует линию и
перемещает курсор от предыдущего положения курсора до указанной точки.Параметры:
(x, y) - координаты нового положения курсора.
Например, рисование графика:
// перемещение курсора к начальной точке
pDC->MoveTo(int(x*100), int(y*100));
for( ... ) // цикл по координате x
{
// вычисление координаты y
...
// рисование линии
pDC->LineTo(int(x*100), int(y*100));
}
|
|
Рисование прямоугольника
При рисовании прямоугольников цвет и стиль линий определяются текущим
карандашом CPen , а цвет и стиль заливки - текущей кистью
CBrush .
BOOL CDC::Rectangle (int x1, int y1, int x2, int y2)
- рисование прямоугольника. Параметры:
(x1, y1) - координаты верхнего левого угла прямоугольника
(x2, y2) - координаты нижнего правого угла прямоугольника.
Пример рисования прямоугольника:
pDC->Rectangle (-200, 100, 200, -100);
Рисование эллипса
При рисовании эллипсов цвет и стиль линий определяются текущим карандашом
CPen , а цвет и стиль заливки - текущей кистью CBrush .
BOOL CDC::Ellipse (int x1, int y1, int x2, int y2)
- рисует эллипс. Параметры:
(x1, y1) - координаты верхнего левого угла описанного прямоугольника
(x2, y2) - координаты нижнего правого угла описанного прямоугольника.
Пример рисования окружности:
pDC->Ellipse(-100, 100, 100, -100);
Рисование дуги окружности
При рисовании дуги окружности цвет и стиль линий определяются текущим
карандашом CPen.
BOOL CDC::Arc (int x1, int y1, int x2, int y2, int x3, int y3,
int x4, int y4) - рисование эллиптической дуги. Рисование дуги
происходит против часовой стрелки. Параметры:
(x1, y1) - координаты верхнего левого угла описанного прямоугольника
(x2, y2) - координаты нижнего правого угла описанного прямоугольника
(x3, y3) - координаты точки на луче, проходящем через центр
эллипса и определяющем начальную точки дуги
(x4, y4) - координаты точки на луче, проходящем через центр
эллипса и определяющем конечную точки дуги.
Например, рисование поверхности линзы:
// x, y - координаты вершины поверхности
// r - радиус поверхности
// h - всветовая высота поверхности
// вычисление стрелки поверхности
int l=...
if( r > 0)
{
xx=x+l;
// рисование поверхности
pDC->Arc(x, y+r, x+2*r, y-r, xx, y+h, xx, y-h);
}
else
{
...
}
|
|
Рисование замкнутой дуги
При рисовании замкнутой дуги цвет и стиль линий определяются текущим
карандашом CPen.
BOOL CDC::Chord (int x1, int y1, int x2, int y2, int x3, int
y3, int x4, int y4) - рисование замкнутой эллиптической дуги.
То же самое, что Arc , но дуга будет замкнутой. Параметры:
(x1, y1) - координаты верхнего левого угла описанного вокруг
эллипса прямоугольника
(x2, y2) - координаты нижнего правого угла описанного вокруг
эллипса прямоугольника
(x3, y3) - координаты точки на луче, проходящем через центр
эллипса и определяющем начальную точки дуги
(x4, y4) - координаты точки на луче, проходящем через центр
эллипса и определяющем конечную точки дуги.
Рисование ломаной линии
При рисовании ломаной линии цвет и стиль линий определяются текущим карандашом
CPen.
BOOL CDC::Polyline (LPPOINT lpPoints, int nCount)
- рисование ломаной линии. Параметры:
lpPoints - массив координат вершин ломаной линии
nCount - количество вершин ломаной линии.
Рисование многоугольника
При рисовании эллипсов цвет и стиль линий определяются текущим карандашом
CPen , а цвет и стиль заливки - текущей кистью CBrush .
BOOL CDC::Polygon (LPPOINT lpPoints, int nCount)
- рисование многоугольника. Параметры:
lpPoints - массив координат вершин многоугольника
nCount - количество вершин многоугольника.
|