Главная » Информатика » Рефераты / Курсовые » КОМПЬЮТЕРНАЯ ГРАФИКА. Лабораторая работа: Построить эллипсоид, заданный уравнением

КОМПЬЮТЕРНАЯ ГРАФИКА. Лабораторая работа: Построить эллипсоид, заданный уравнением

Кафедра ЭВМ
КОМПЬЮТЕРНАЯ ГРАФИКА Лабораторная работа №2

КОМПЬЮТЕРНАЯ ГРАФИКА. Лабораторая работа: Построить эллипсоид, заданный уравнением

Кафедра ЭВМ

КОМПЬЮТЕРНАЯ ГРАФИКА

Лабораторная работа №2

Задание:
Построить эллипсоид, заданный уравнением:КОМПЬЮТЕРНАЯ ГРАФИКА. Лабораторая работа: Построить эллипсоид, заданный уравнением
Провести нормали.

Текст программы:

#include<graphics.h>
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<math.h>
#include<stdlib.h>
#include <iostream.h>

#define Eps 30
#define Dist 1000
#define W 0
#define H 0

#define CX 320
#define CY 240

#define AA 300
#define BB 200
#define CC 100

typedef long double ld;

void getxy(ld x, ld y, ld z, ld &xx, ld &yy1, ld &yy2)

{
xx=CX+(W+Dist*(y-W)/(x+Dist));
yy1=CY-(H+Dist*(z-H)/(x+Dist));
yy2=CY+(H+Dist*(z-H)/(x+Dist));
}

ld func(double x,double y)
{
long double tmp=CC*(200-pow(x,2)/AA-pow(y,2)/BB);
return tmp<0?0:sqrt(tmp);
}

void main(void)
{
ld x,y,x1,y1,y2,y_1,nx,ny,nz,l,XX=0,YY=0;
int drv=DETECT,mod;
initgraph(&drv,&mod,\»\»);
cleardevice();
setcolor(8);

for(int i=-250;i<250;i+=Eps)
for(int j=-250;j<250;j+=Eps)
{
if(i>0) setcolor(8);
else setcolor(7);

getxy(i,j,func(i,j),x,y,y_1);
getxy(i+Eps,j,func(i+Eps,j),x1,y1,y2);
line(x,y,x1,y1);      // верт. линии верх. полусферы
line(x,y_1,x1,y2);    // верт. линии ниж. полусферы

getxy(i,j+Eps,func(i,j+Eps),x1,y1,y2);
line(x,y,x1,y1);    // гориз. линии верх. полусферы
line(x,y_1,x1,y2);  // гориз. линии ниж. полусферы
}
getch();
setcolor(1);
for(XX=-250;XX<250;XX+=Eps)
for(YY=-250;YY<250;YY+=Eps)
{
nx=2*XX/AA;
ny=2*YY/BB;
nz=2*func(XX,YY)/CC;
l=sqrt(nx*nx+ny*ny+nz*nz)/50;
nx/=l;
ny/=l;
nz/=l;
getxy(XX,YY,func(XX,YY),x,y,y_1);
getxy(nx+XX,ny+YY,nz+func(XX,YY),x1,y1,y2);
line(x,y,x1,y1);
line(x,y_1,x1,y2);
putpixel(x,y,9);
putpixel(x,y_1,9);
}
getch();
closegraph();
}


Результат работы программы:

КОМПЬЮТЕРНАЯ ГРАФИКА. Лабораторая работа: Построить эллипсоид, заданный уравнением

Скачать полную версию можно по ссылке…
Скачать Лабораторая работа: Построить эллипсоид, заданный уравнением + еще 7 лабораторных по кафедре ЭВМ

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Pin It on Pinterest