Рисование

  • Автор темы o1ps
  • Дата начала
Статус
Закрыто для дальнейших ответов.
O

o1ps

#1
Пожалуйста, подскажите методы, которыми можно воспользоваться при построении изображения в Visual C++ для создания например такого изображения : приближающийся прямоугольник с вписанными в него двумя непересекающимися эллипсами. В Исходные данные можно записать размеры и первоначальное положение фигур на экране.
 
G

gamecreator

#2
Код:
int stxrect, styrect, stxel1, styel1, stxel2, styel2, dxrect, dyrect, dxel1, dyel1, dxel2, dyel2;
int lxrect, lyrect, lxel1, lyel1, lxel2, lyel2, dlxrect, dlyrect, dlxel1, dlyel1, dlxel2, dlyel2;
int delay, n; // задержка между кадрами и их кол-во
// st[координата][название фигуры] - стартовая точка
// d[координата][название фигуры] - сдвиг влево/вверх от стартовой точки (если <0, то элемент будет двигаться вправо/вниз)
// l[координата][название фигуры] - стартовая длина
// dl[координата][название фигуры] - прирост длины (<0 - фигура будет уменьшаться)
CDC p_dc=theApp.m_pMainWnd->GetDC();

// НЕ ЗАБУДЬ ИНИЦИАЛИЗИРОВАТЬ ПЕРЕМЕННЫЕ ФИГУР!!!

for(int i=0,x1,x2,y1,y2;i<n;i++)
{
// прямоугольник
x1=stxrect-dxrect*i;
y1=styrect-dyrect*i;
x2=x1+lxrect+dlxrect*i;
y2=y1+lyrect+dlyrect*i;
p_dc->Rectangle(x1,y1,x2,y2);
// эллипс №1
x1=stxel1-dxel1*i;
y1=styel1-dyel1*i;
x2=x1+lxel1+dlxel1*i;
y2=y1+lyel1+dlyel1*i;
p_dc->Ellipse(x1,y1,x2,y2);
// эллипс №2
x1=stxel2-dxel2*i;
y1=styel2-dyel2*i;
x2=x1+lxel2+dlxel2*i;
y2=y1+lyel2+dlyel2*i;
p_dc->Ellipse(x1,y1,x2,y2);
}
ну вот. если нигде не опечатался - будет работать. код можно вставлять в любое место приложения созданного MFC. если приложение создано другим способом - надо поменять theApp на обьект приложения.
 
Статус
Закрыто для дальнейших ответов.