ТЕХНИЧЕСКИЕ НАУКИ
ИСПОЛЬЗОВАНИЕ ТЕКСТУРЫ КИРПИЧ ПРИ ПОСТРОЕНИИ
ГРАФИЧЕСКОГО ИЗОБРАЖЕНИЯ ДОМА
Ананьева Марина Алексеевна
старший преподаватель кафедры прикладной математики Московский Государственный Университет информационных технологий, радиотехники и электроники МИРЭА
г. Москва
USE TEXTURE BRICK BY BUILDING IMAGE GRAPHICS OF HOUSE
Ananieva Marina Alekseevna, older teacher of chair application mathematics of Moskow State University information technology, radio-technology and electronics MIREA, MOSCOW АННОТАЦИЯ
В данной статье рассматривается графическое изображение дома при дневном и вечернем освещении. При изображении дома используются текстура кирпич[1], графические примитивы (полигон, прямоугольник, окружность, прямая линия). Графические примитивы рассматриваются в [2]. Графические изображения можно использовать при создании какой- нибудь обучающей программы, чтобы описывать какие-то схемы или условные изображения механизмов. ABSTRACT
In this article considers the image graphics of house by day and evening throw light upon. By image of house uses the texture brick[1], the graphical output primitives( the polygon, the rectangle, the circle, the direct line). The graphical output primitives considers in [2]. The image graphics can use by instantiate some teach program, in order to revive some schemes or conditional image of mechanism.
Ключевые слова: текстура, графическое изображение, дом. Keywords: texture, image graphics, house.
//программа написана на языке C++Builder 6
#include <vcl.h> #pragma hdrstop #define C_M Canvas->MoveTo #define C_L Canvas->LineTo #define C_BC Canvas->Brush->Color #define C_PC Canvas->Pen->Color #define C_PW Canvas->Pen->Width #define C_E Canvas->Ellipse #define C_R Canvas->Rectangle #define cW clWhite #include "Article_15_1.h"
//-...................................................................
#pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; int mx=30,my=30;
//--------------------------------------------------------------------
_fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
//--------------------------------------------------------------------
void_fastcall TForm1::FormPaint(TObject *Sender)
{Color=(TColor)cW;
if (CheckBox1->Checked==true) LightOn(); else LightOff();}
//--------------------------------------------------------
void_fastcall TForm1::LightOn()
{ TPoint p1[4],p2[4],p3[4];
//рисунок
//небо
C_BC=(TColor)RGB(220,242,248);
C_R(0,0,15.5*mx,18.5*my);
//крыша
C_PC=(TColor)RGB(143,5,19);
C_BC=(TColor)RGB(143,5,19);
p1[0].x=7.5*mx;p1[0].y=4.5*my;
p1[1].x=1*mx;p1[1].y=11.5*my;
p1[2].x=14*mx;p1[2].y=11.5*my;
p1[3].x=7.5*mx;p1[3].y=4.5*my;
Canvas->Polygon(p1,3);
//дом
C_PC=(TColor)RGB(244,11,17);
C_BC=(TColor)RGB(244,11,17);
C_R(2.5*mx,11.5*my,12.5*mx,18.5*my);
//текстура
texture(10,7);
//дверь
C_PC=(TColor)RGB(98,0,0); C_BC=(TColor)RGB(98,0,0); C_R(6*mx,13.5*my,8*mx,18*my);
C_PC=(TColor)RGB(45,0,0);
C_BC=(TColor)RGB(45,0,0);
C_R(5.5*mx,18*my,9.5*mx,18.3*my);
C_PC=(TColor)RGB(23,0,0);
C_BC=(TColor)RGB(23,0,0);
C_R(5*mx,18.3*my,10*mx,18.5*my);
C_PC=(TColor)0;C_BC=(TColor)0;
C_E(7.3*mx,14.3*my,7.7*mx,14.7*my);
C_R(8.5*mx,16*my,8.7*mx,16.7*my);
//окна
C_PC=(TColor)cW;C_BC=(TColor)cW;
C_R(3.3*mx,12.6*my,5.8*mx,15*my);
C_R(9.2*mx,12.6*my,11.6*mx,15*my);
C_PC=(TColor)RGB(0,81,119);
C_BC=(TColor)RGB(0,81,119);
C_R(3.5*mx,12.8*my,5.6*mx,14.8*my);
C_R(9.4*mx,12.8*my,11.4*mx,14.8*my);
C_PC=(TColor)cW;
C_PW=6;
C_M(4.55*mx,12.7*my); C_L(4.55*mx,14.9*my); C_M(10.4*mx,12.7*my); C_L(10.4*mx,14.9*my); //круглое окно
C_PC=(TColor)cW;C_BC=(TColor)cW;
C_E(6.3*mx,7.7*my,8.7*mx,10.1*my);
C_PC=(TColor)RGB(0,81,119);
C_BC=(TColor)RGB(0,81,119);
C_E(6.5*mx,7.9*my,8.5*mx,9.9*my);
C_PC=(TColor)cW;
C_PW=3;
C_M(7.5*mx,7.7*my);C_L(7.5*mx,10.1*my);
C_M(6.3*mx,8.9*my);C_L(8.7*mx,8.9*my);
C_PW=1;
//трава
C_BC=(TColor)RGB(0,102,0); C_R(0,18*my,15.5*mx,Height);}
//-........................................................
void_fastcall TForm1::LightOffO
{TPoint p1[4],p2[4],p3[4];
//рисунок
//небо
C_BC=(TColor)RGB(41,50,154);
C_R(0,0,15.5*mx,18.5*my);
//крыша
C_PC=(TColor)RGB(111,0,17);
C_BC=(TColor)RGB(111,0,17);
p1[0].x=7.5*mx;p1[0].y=4.5*my;
p1[1].x=1*mx;p1[1].y=11.5*my;
p1[2].x=14*mx;p1[2].y=11.5*my;
p1[3].x=7.5*mx;p1[3].y=4.5*my;
Canvas->Polygon(p1,3);
//дом
C_PC=(TColor)RGB(143,12,18);
C_BC=(TColor)RGB(143,12,18);
C_R(2.5*mx,11.5*my,12.5*mx,18.5*my);
//текстура
texture(10,7);
//дверь
C_PC=(TColor)RGB(64,0,0);
C_BC=(TColor)RGB(64,0,0);
C_R(6*mx,13.5*my,9*mx,18*my);
C_PC=(TColor)RGB(34,0,0);
C_BC=(TColor)RGB(34,0,0);
C_R(5.5*mx,18*my,9.5*mx,18.3*my);
C_PC=(TColor)RGB(9,0,0);
C_BC=(TColor)RGB(9,0,0);
C_R(5*mx,18.3*my,10*mx,18.5*my);
C_PC=(TColor)0;C_BC=(TColor)0;
C_E(7.3*mx,14.3*my,7.7*mx,14.7*my);
C_R(8.5*mx,16*my,8.7*mx,16.7*my);
//окна
C_PC=(TColor)RGB(62,94,136);
C_BC=(TColor)RGB(62,94,136);
C_R(3.3*mx,12.6*my,5.8*mx,15*my);
C_R(9.2*mx,12.6*my,11.6*mx,15*my);
C_PC=(TColor)RGB(236,184,4);
C_BC=(TColor)RGB(236,184,4);
C_R(3.5*mx,12.8*my,5.6*mx,14.8*my);
C_R(9.4*mx,12.8*my,11.4*mx,14.8*my);
C_PC=(TColor)RGB(62,94,136);
C_PW=6;
C_M(4.55*mx,12.7*my);C_L(4.55*mx,14.9*my); C_M(10.4*mx,12.7*my);C_L(10.4*mx,14.9*my); //круглое окно
C_PC=(TColor)RGB(62,94,136);
C_BC=(TColor)RGB(62,94,136);
C_E(6.3*mx,7.7*my,8.7*mx,10.1*my);
C_PC=(TColor)RGB(236,184,4);
C_BC=(TColor)RGB(236,184,4);
C_E(6.5*mx,7.9*my,8.5*mx,9.9*my);
C_PC=(TColor)RGB(62,94,136);
C_PW=3;
C_M(7.5*mx,7.7*my);C_L(7.5*mx,10.1*my);
C_M(6.3*mx,8.9*my);C_L(8.7*mx,8.9*my);
C_PW=1;
//трава
C_BC=(TColor)RGB(15,77,33); C_R(0,18*my,15.5*mx,Height);}
//......................................................................
void_fastcall TForm1::texture(int n, int m)
{int i,j;
C_PC=(TColor)7; for(i=0;i<n;i+=2) {for(j=0;j<m;j++) {//вертикальные линии
//1
C_M((3+i)*mx,(11.5+j)*my); CJ_((3+i)*mx,(12+j)*my);
//2
C_M((4+i)*mx,(11.5+j)*my); C_L((4+i)*mx,(12+j)*my); //3
C_M((2.5+i)*mx,(12+j)*my);
C_L((2.5+i)*mx,(12.5+j)*my);
//4
C_M((3.5+i)*mx,(12+j)*my);
C_L((3.5+i)*mx,(12.5+j)*my); //горизонтальные линии //1_1
C_M((2.5+i)*mx,(12+j)*my); C_L((4.5+i)*mx,(12+j)*my); //2_2
C_M((2.5+i)*mx,(12.5+j)*my);
C_L((4.5+i)*mx,(12.5+j)*my); } }}
Рисунок 1 - Дом при дневном освещении
Рисунок 2. Дом при вечернем освещении Список литературы:
1. Порев В.Н. Компьютерная графика.-СПб. : БХВ-Петербург, 2005.-432с.: ил.
2. Культин Н.Б. Самоучитель C++Builder.- СПб.: БХВ-Петербург,2006.-320с.:ил.