Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > 2-D графика CDC


Автор: Parasite 9.5.2004, 18:26
Нужно в 2-D нарисовать правильную призму, у которой основание многоугольник с количеством углов N, со стороной основания A. Высота призмы H.

Для нарисовки оснований допустим - ф-я Polygon (HDC hdc, tagPOINT *PPOINT,N);

Ну... может кто-то составлял алгоритм... расстановки координат вершин, маштабирование рисунка rolleyes.gif
Я чужим кодом не побрезгую smile.gif))

Автор: shara 29.6.2004, 13:01
вот нашел твою просьбу о помощи, подожди немного шас сделаем и пришлём cool.gif
я тут посидел и подумал, как нарисовать 2D призму чтобы было видно все грани? я сделаю её под углом или что-то тому подобное. smile.gif

Автор: shara 30.6.2004, 05:33
ну вот тебе прога(сам писал), кстати этот многоугольник ещё и вращается для уселения эфекта smile.gif

#include <DOS.H>
#include <MATH.H>
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
int x1,y1,x2,y2,x3,y3,x4,y4,n,r,a,h,ymid;
float i,step,p;
int gdriver = DETECT, gmode, errorcode;
int midx, midy;

initgraph(&gdriver, &gmode, "");

errorcode = graphresult();
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}
printf("\n avtor PETROV ANDREY");
printf("\n mnogougolnik ");
printf("\n nwwedite kolichestwo storon mnogougolnika N= ");
scanf("%d",&n);
printf(" wwedite dlinu storonbI mnogougolnika A= ");
scanf("%d",&a);
printf(" wwedite visotu mnogougolnika H= ");
scanf("%d",&h);

step=3.1415*2/(n);
r=a/(sin(step/2)*2);
ymid=240+h/2; // wiwod mnogougolnika po zentry
while (!kbhit()) // povorot mnogougolnika
{
p=p+.03; // scorost povorota
for (i=p;i<=3.1415*2+p;i=i+step )
{
x1=(cos(i)-sin(i))*r+320; y1=(sin(i)+cos(i))*r+ymid;
x2=(cos(i+step)-sin(i+step))*r+320; y2=(sin(i+step)+cos(i+step))*r+ymid;
x3=x2; y3=y2-h;
x4=x1; y4=y1-h;
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(x3,y3,x4,y4);
line(x4,y4,x1,y1);
}

delay(150); // zaderjka na 150 milisec
cleardevice(); // ochistka ekrana
}
closegraph();
return 0;
}

прога 100% работает, будут ошибки значит или графику не может вывести или путя не правильные, если что пиши thumbs-up.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)