else moveToCx. y):
CP.x - x: CP.y = y:
}
void Canvas::ngon(int n.float ex. float су, float radius) {
#define RadPerDeg 0.017453393 //radians per degree if(n < 3) return: // bad number of sides
В2. RGBPixmap CLASS
double angle = 0. anglelnc - 2 * 3.14159265 In; //angle increment
moveTo(cx + radius, су): for(int к - 1: к <- n: k++) {
angle +- anglelnc:
lineToCradius * cos(angle) + ex. radius * sin(angle) + су):
}
}
// end of graphics2d.cpp
// конец файла graphics2d.cpp
B2. RGBPixmap CLASS
// RGBpixmap.h: a class to support working // with RGB pix maps.
// RGBpixmap.h: класс для поддержки работы с RGB // пиксельными картами. #ifndef _RGBPIXMAP #define _RGBPIXMAP #include <fstream>
// Needs the IntPoint and IntRect classes to be defined // Требуется определить классы IntPoint и IntRect
typedef unsigned char uchar:
class mRGB{
// the name RGB is already used by Windows
// имя RGB уже используется в Windows
Секреты идеальных взаимоотношений: статьи your-okna.ru.
public: uchar r.g.b:
mRGBO{r - g - b - 0:}
mRGB(mRGB& p){r - p.r; g - p.g: b - p.b:}
mRGB(uchar rr. uchar gg. uchar bb){r - rr; g - gg; b - bb;}
void setfuchar rr. uchar gg. uchar bb){r - rr; g - gg: b - bb:}
J:
//$$$$$$$$$$$$$$$$$ RGBPixmap class $$$$$$$$$$$$$$$
class RGBpixmap{
private:
mRGB* pixel:
// array of pixels
// массив из пикселов
public: int nRows. nCols: // dimensions of the pix map // размеры пиксельной карты
RGBpixmapO {nRows - nCols - 0: pixel - 0;}
RGBpixmapCint rows, int cols) //constructor
{
nRows - rows: nCols = cols:
pixel - new mRGB[rows*cols]:
}
31 Ф. Хилл Приложение В. Некоторые полезные классы и служебные подпрограммы
int readBMPFileCstring fnarae); // read BMP file into this pix map // читаем BMP-файл в эту пиксельную карту void freeltO
// give back memory for this pix map
// возвращаем память для этой пиксельной карты
{
delete üpixel: nRows - nCols - 0:
}
//««««««««« copy »»»>»»»»»»
void copydntPoint from. IntPoint to. int x. int y. int width, int height) {
// copy a region of the display back onto the display // копируем область дисплея обратно на дисплей