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ự:
  • Tôi chấp nhận làm vợ hai của người đàn ông hơn mình 20 tuổi | 01:06 ...
  • Tôi muốn hủy hôn vì chồng sắp cưới chát sex | 01:06 ...
  • Tôi chấp nhận để vợ tìm niềm vui chăn gối ở người đàn ông khác | 02:06 ...
  • Mong em cho anh thêm cơ hội từ bỏ bia rượu | 01:06 ...
  • Con buồn lắm bởi chẳng được mẹ ôm từ khi có thêm em | 02:06 ...
  • Phát hiện vợ sắp cưới từng cặp bồ khi còn sống với chồng cũ | 02:06 ...
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.
Kết nối đề xuất:
Đọc Truyện online