| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > 2-D графика CDC |
| Автор: Parasite 9.5.2004, 18:26 |
| Нужно в 2-D нарисовать правильную призму, у которой основание многоугольник с количеством углов N, со стороной основания A. Высота призмы H. Для нарисовки оснований допустим - ф-я Polygon (HDC hdc, tagPOINT *PPOINT,N); Ну... может кто-то составлял алгоритм... расстановки координат вершин, маштабирование рисунка Я чужим кодом не побрезгую |
| Автор: shara 29.6.2004, 13:01 |
| вот нашел твою просьбу о помощи, подожди немного шас сделаем и пришлём я тут посидел и подумал, как нарисовать 2D призму чтобы было видно все грани? я сделаю её под углом или что-то тому подобное. |
| Автор: shara 30.6.2004, 05:33 |
| ну вот тебе прога(сам писал), кстати этот многоугольник ещё и вращается для уселения эфекта #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% работает, будут ошибки значит или графику не может вывести или путя не правильные, если что пиши |