Chia sẻ, bình luận những vấn đề sinh viên quan tâm
By thocon_dethuong
#267632 em có cái bài tập lớn môn Kỹ thuật đồ hoạ máy tính như thế này:

Vẽ hình hộp chữ nhật quay quanh trục oz

bac nào có thì cho em xin code.bằng ngôn ngữ nào cũng được.em xin cảm ơn

Lưu ý khi sử dụng

- Gặp Link download hỏng, hãy đăng trả lời (yêu cầu link download mới), Các MOD sẽ cập nhật link sớm nhất
- Tìm kiếm trước khi đăng bài mới

Chủ đề liên quan:
By diep_1809
#270639 ve chay thu xem anh hoa day


#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

#include <iostream.h>

#include <math.h>


#define RADS 0.017453293


void veHeToaDo(){

setcolor(BLUE);

int Ox=getmaxx()/2;

int Oy=getmaxy()/2;


//Ox

line(Ox,20,Ox,Oy);


//Oy

line(Ox,Oy,getmaxx()-20,Oy);


//Oz

line(Ox,Oy,Ox-150,Oy+150);


//Goc toa do

setcolor(YELLOW);

circle(Ox,Oy,1);


settextjustify(1,1);


setcolor(WHITE);

outtextxy(Ox,20,"^");

outtextxy(getmaxx()-20,Oy,">");

outtextxy(Ox+10,Oy+10,"O");

outtextxy(Ox+10,20,"Y");

outtextxy(getmaxx()-20,Oy+10,"X");

outtextxy(Ox-150,Oy+150,"<");

outtextxy(Ox-160,Oy+160,"Z");


for(int i=1;i<Oy/10;i++){

putpixel(Ox,Oy-10*i,WHITE);

}


for(int j=1;j<Ox/10;j++){

putpixel(Ox+10*j,Oy,WHITE);

}


for(int k=1;k<15;k++){

putpixel(Ox-10*k,Oy+10*k,WHITE);

}

}


class Diem{

public:

double x;

double y;

double z;


void diChuyen(int c){

switch(c){

case 75: x-=10; break;

case 77: x+=10; break;

case 72: y+=10; break;

case 80: y-=10; break;

case 42: z-=10; break;

case 47: z+=10; break;

}

}


void quay(int c){

float xo=x, yo=y, zo=z;

float a=0.1;

switch(c){

case 120: //Ox

y=yo*cos(a)-zo*sin(a);

z=yo*sin(a)+zo*cos(a);

break;

case 121: //Oy

x=xo*cos(a)+zo*sin(a);

z=-xo*sin(a)+zo*cos(a);

break;

case 122: //Oz

x=xo*cos(a)-yo*sin(a);

y=xo*sin(a)+yo*cos(a);

break;

}

}


void tyLe(int c){

switch(c){

case 43:

x*=1.5;

y*=1.5;

z*=1.5;

break;

case 45:

x/=1.5;

y/=1.5;

z/=1.5;

break;

}

}


void gan(Diem d){

x=d.x;

y=d.y;

z=d.z;

}

};


Diem chuyenHeToaDo(Diem od){

Diem d;

d.gan(od);


double x=d.x, y=d.y, z=d.z;

d.x=z;

d.y=x;

d.z=y;


Diem p;

if(d.x>=0&&d.y>=0&&d.z>=0){

p.x = getmaxx()/2+d.y - d.x*cos(RADS*45);

p.y = getmaxy()/2-d.z + d.x*cos(RADS*45);

}

if(d.y>=0&&d.x<0&&d.z>=0){

p.x = d.y+getmaxx()/2-d.x*cos(RADS*45);

p.y = getmaxy()/2-d.z+d.x*cos(RADS*45);

}

if(d.x>=0&&d.y<0&&d.z>=0){

p.x = getmaxx()/2+d.y-d.x*cos(RADS*45);

p.y = getmaxy()/2-(d.z-d.x*cos(RADS*45));

}

if(d.x>=0&&d.y>=0&&d.z<0){

p.x = getmaxx()/2+d.y-d.x*cos(RADS*45);

p.y = getmaxy()/2-d.z+d.x*cos(RADS*45);

}

if(d.y>=0&&d.x<0&&d.z<0){

p.x = getmaxx()/2+d.y-d.x*cos(RADS*45);

p.y = getmaxy()/2+(-d.z-d.x*cos(RADS*45));

}

if(d.x>=0&&d.y<0&&d.z<0){

p.x = getmaxx()/2+d.y-d.x*cos(RADS*45);

p.y = getmaxy()/2-d.z+d.x*cos(RADS*45);

}

if(d.z>=0&&d.y<0&&d.x<0){

p.x = getmaxx()/2-(-d.y+d.x*cos(RADS*45));

p.y = getmaxy()/2-(d.z-d.x*cos(RADS*45));

}

if(d.x<0&&d.y<0&&d.z<0){

p.x = getmaxx()/2+d.y-d.x*cos(RADS*45);

p.y = getmaxy()/2-d.z+d.x*cos(RADS*45);

}


return(p);

}


class DoanThang{

public:

Diem dd;

Diem dc;


void ve(){

veHeToaDo();

Diem ddm, dcm;

ddm.gan(chuyenHeToaDo(dd));

dcm.gan(chuyenHeToaDo(dc));

setcolor(RED);

line(ddm.x,ddm.y,dcm.x,dcm.y);

}


void diChuyen(int c){

dd.diChuyen(c);

dc.diChuyen(c);

}


void quay(int c){

dd.quay(c);

dc.quay(c);

}


void tyLe(int c){

dd.tyLe(c);

dc.tyLe(c);

}

};


class TuDien{

public:

Diem A;

Diem B;

Diem C;

Diem D;


void ve(){

veHeToaDo();


DoanThang AB,AC,AD,BC,BD,CD;


AB.dd.gan(A);

AB.dc.gan(B);

setcolor(RED);

AB.ve();


AC.dd.gan(A);

AC.dc.gan(C);

setcolor(RED);

AC.ve();


AD.dd.gan(A);

AD.dc.gan(D);

setcolor(RED);

AD.ve();


BC.dd.gan(B);

BC.dc.gan(C);

setcolor(RED);

BC.ve();


BD.dd.gan(B);

BD.dc.gan(D);

setcolor(RED);

BD.ve();


CD.dd.gan(C);

CD.dc.gan(D);

setcolor(RED);

CD.ve();


}


void diChuyen(int c){

A.diChuyen(c);

B.diChuyen(c);

C.diChuyen(c);

D.diChuyen(c);

}


void tyLe(int c){

A.tyLe(c);

B.tyLe(c);

C.tyLe(c);

D.tyLe(c);

}


void quay(int c){

A.quay(c);

B.quay(c);

C.quay(c);

D.quay(c);

}

};


void chucNangTuDien(){

cout<<"======== CHUONG TRINH DI CHUYEN / TY LE / QUAY TU DIEN (3D) ========";


TuDien h;


cout<<"> Nhap toa do diem A: ";

cout<<"\n x = ";

cin>>h.A.x;

cout<<"\n y = ";

cin>>h.A.y;

cout<<"\n z = ";

cin>>h.A.z;


cout<<"> Nhap toa do diem B: ";

cout<<"\n x = ";

cin>>h.B.x;

cout<<"\n y = ";

cin>>h.B.y;

cout<<"\n z = ";

cin>>h.B.z;


cout<<"\n> Nhap toa do diem C: ";

cout<<"\n x = ";

cin>>h.C.x;

cout<<"\n y = ";

cin>>h.C.y;

cout<<"\n z = ";

cin>>h.C.z;


cout<<"> Nhap toa do diem D: ";

cout<<"\n x = ";

cin>>h.D.x;

cout<<"\n y = ";

cin>>h.D.y;

cout<<"\n z = ";

cin>>h.D.z;


h.ve();


cout<<"\n\n> De thoat ra: an ESC.";


for({

int c=getch();

if(c==27)

break;

h.diChuyen(c);

h.tyLe(c);

h.quay(c);

cleardevice();

h.ve();

}

}


void main(void){

for({

clrscr();


int gdriver, gmode, errorcode;

gdriver = DETECT;

initgraph(&gdriver,&gmode,"D:\\TC\\BGI");

errorcode = graphresult();

if (errorcode !=grOk){

cout<<"\n không the khoi tao!";

getch();

exit(1);

}


int lc=0;


cout<<"======== CHUONG TRINH DI CHUYEN / TY LE / QUAY CAC DOI TUONG ========";

cout<<"\n\n|| 1.> Thao tac voi tu dien. ||";

cout<<"\n|| ||";

cout<<"\n|| 0.> Thoa't. ||";

cout<<"\n|| ||";

cout<<"\n\n Lua chon: ";

cin>>lc;


switch(lc){

case 1:

chucNangTuDien();;

break;

case 0:

exit(1);

}



closegraph();

}

}
Blog Tâm sự:
  • Được tôi tha thứ nhưng vợ vẫn chưa dứt được người đàn ông đó | 03:02 ...
  • Tôi từng muốn tự tử vì ngoại hình lăn nhanh hơn đi của mình | 04:02 ...
  • Nỗi đau về chuyện ngoại tình của ba cứ theo tôi dai dẳng | 03:02 ...
  • Đi với bạn trai nhưng tôi lại nghĩ đến người đàn ông khác | 02:02 ...
  • Mẹ khổ cả đời vì bố đối xử quá tệ bạc | 05:02 ...
  • Tôi sẽ có mọi thứ khi làm trai bao của anh giám đốc già | 02:02 ...
By hong.traitim
#270640 Em có bai tập lớn Đồ họa này anh nào code gửi em với em Thank .

Giả sử rằng một bề mặt chiếu được định nghĩa là mặt xy của hệ tọa độ quy tắc bàn tay trái, cài đặt sự định nghĩa tọa độ của một hình hộp chữ nhật trong hệ tọa độ này để nó nằm phía trước mặt phẳng chiếu. Dùng ma trận biến hướng của khối sao cho thu được phép chiếu phối cảnh một điểm và hai điểm. Viết một chương trình để hiển thị hai quang cảnh phối cảnh này.
Ketnooi đề xuất:
Đọc Truyện online