Tải bản đầy đủ (.docx) (7 trang)

Thiết kế mô hình 3D phòng triển lãm tàu thủy bằng c

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (40.42 KB, 7 trang )

1.1. Mơ hình phân cấp

Thân thuyền

Khoang lái

Cột buồm

Lá buồm

Ma trận M = I

M = M*T(x0,y0,z0)

T(x0,y0,z0)

T(x1,y1,z1)

T(x2,y2,z2)

1. T(x3,y3,z3)
2. Ry(i)

M = M*T(x1,y1,z1)

M = M*T(x2,y2,z2)

M = M*T(x3,y3,z3)*Ry(i)


1.2. Kỹ thuật tạo mơ hình thuyền buồm


void than_thuyen1(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.32, 0.02, 0.02, instance);
}
void than_thuyen2(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.36, 0.02, 0.05, instance);
}
void than_thuyen3(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.31, 0.02, 0.08, instance);
instance = Translate(w, l, h);
MatPhang(0.33, 0.02, 0.07, instance);
instance = Translate(w, l, h);
MatPhang(0.35, 0.02, 0.06, instance);
instance = Translate(w, l, h);
MatPhang(0.37, 0.02, 0.05, instance);
instance = Translate(w, l, h);
MatPhang(0.39, 0.02, 0.04, instance);
instance = Translate(w, l, h);
MatPhang(0.41, 0.02, 0.03, instance);
instance = Translate(w, l, h);
MatPhang(0.43, 0.02, 0.02, instance);
instance = Translate(w, l, h);
MatPhang(0.46, 0.02, 0.01, instance);
}
void than_thuyen4(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.34, 0.02, 0.11, instance);
instance = Translate(w, l, h);

MatPhang(0.36, 0.02, 0.1, instance);
instance = Translate(w, l, h);
MatPhang(0.38, 0.02, 0.09, instance);
instance = Translate(w, l, h);
MatPhang(0.4, 0.02, 0.08, instance);
instance = Translate(w, l, h);
MatPhang(0.42, 0.02, 0.07, instance);
instance = Translate(w, l, h);
MatPhang(0.44, 0.02, 0.06, instance);
instance = Translate(w, l, h);
MatPhang(0.46, 0.02, 0.05, instance);


}

instance = Translate(w, l, h);
MatPhang(0.48, 0.02, 0.04, instance);
instance = Translate(w, l, h);
MatPhang(0.5, 0.02, 0.03, instance);
instance = Translate(w, l, h);
MatPhang(0.52, 0.02, 0.02, instance);
instance = Translate(w, l, h);
MatPhang(0.55, 0.02, 0.01, instance);

void than_thuyen5(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.37, 0.02, 0.14, instance);
instance = Translate(w, l, h);
MatPhang(0.39, 0.02, 0.13, instance);
instance = Translate(w, l, h);

MatPhang(0.41, 0.02, 0.12, instance);
instance = Translate(w, l, h);
MatPhang(0.42, 0.02, 0.11, instance);
instance = Translate(w, l, h);
MatPhang(0.44, 0.02, 0.1, instance);
instance = Translate(w, l, h);
MatPhang(0.46, 0.02, 0.09, instance);
instance = Translate(w, l, h);
MatPhang(0.48, 0.02, 0.08, instance);
instance = Translate(w, l, h);
MatPhang(0.5, 0.02, 0.07, instance);
instance = Translate(w, l, h);
MatPhang(0.52, 0.02, 0.06, instance);
instance = Translate(w, l, h);
MatPhang(0.54, 0.02, 0.05, instance);
instance = Translate(w, l, h);
MatPhang(0.56, 0.02, 0.04, instance);
instance = Translate(w, l, h);
MatPhang(0.6, 0.02, 0.03, instance);
instance = Translate(w, l, h);
MatPhang(0.62, 0.02, 0.02, instance);
instance = Translate(w, l, h);
MatPhang(0.64, 0.02, 0.01, instance);
}
void khoang_lai(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.16, 0.1, 0.07, instance);
instance = Translate(w, l, h);
MatPhang(0.12, 0.12, 0.05, instance);
instance = Translate(w, l, h);

MatPhang(0.08, 0.14, 0.03, instance);
instance = Translate(w, l, h);


}

MatPhang(0.04, 0.16, 0.01, instance);

void cot_buom(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.01, 0.26, 0.005, instance);
}
void la_buom1(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.14, instance);
}
void la_buom2(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.11, instance);
}
void la_buom3(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.11, instance);
}
void la_buom4(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.115, instance);
}
void la_buom5(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);

MatPhang(0.01, 0.01, 0.12, instance);
}
void la_buom6(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.12, instance);
}
void la_buom7(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.125, instance);
}
void la_buom8(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.13, instance);
}
void la_buom9(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.13, instance);
}
void la_buom10(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.13, instance);
}
void la_buom11(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);


MatPhang(0.01, 0.01, 0.13, instance);
}
void la_buom12(GLfloat w, GLfloat l, GLfloat
instance = Translate(w, l, h);

MatPhang(0.01, 0.01, 0.13, instance);
}
void la_buom13(GLfloat w, GLfloat l, GLfloat
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.125, instance);
}
void la_buom14(GLfloat w, GLfloat l, GLfloat
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.125, instance);
}
void la_buom15(GLfloat w, GLfloat l, GLfloat
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.12, instance);
}
void la_buom16(GLfloat w, GLfloat l, GLfloat
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.12, instance);
}
void la_buom17(GLfloat w, GLfloat l, GLfloat
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.115, instance);
}
void la_buom18(GLfloat w, GLfloat l, GLfloat
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.115, instance);
}
void la_buom19(GLfloat w, GLfloat l, GLfloat
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.11, instance);
}

void la_buom20(GLfloat w, GLfloat l, GLfloat
instance = Translate(w, l, h);
MatPhang(0.01, 0.01, 0.11, instance);
}

h) {

h) {

h) {

h) {

h) {

h) {

h) {

h) {

h) {

void cot_phu(GLfloat w, GLfloat l, GLfloat h) {
instance = Translate(w, l, h);
MatPhang(0.01, 0.05, 0.005, instance);
}
void than_thuyen() {
than_thuyen1(0.02,
than_thuyen2(0.02,

than_thuyen3(0.02,
than_thuyen4(0.02,
than_thuyen5(0.02,

-0.51,
-0.49,
-0.47,
-0.45,
-0.43,

-0.25);
-0.25);
-0.25);
-0.25);
-0.25);


}
void khoang_lai() {
khoang_lai(0.16, -0.38, -0.25);
}
void cot_buom() {
cot_buom(-0.025, -0.3, -0.25);
}
void la_buom() {
la_buom1(-0.028, -0.20, -0.25);
la_buom2(-0.031, -0.21, -0.25);
la_buom3(-0.034, -0.22, -0.25);
la_buom4(-0.037, -0.23, -0.25);
la_buom5(-0.039, -0.24, -0.25);

la_buom6(-0.041, -0.25, -0.25);
la_buom7(-0.0425, -0.26, -0.25);
la_buom8(-0.044, -0.27, -0.25);
la_buom9(-0.0445, -0.28, -0.25);
la_buom10(-0.045, -0.29, -0.25);
la_buom11(-0.045, -0.3, -0.25);
la_buom12(-0.0445, -0.31, -0.25);
la_buom13(-0.044, -0.32, -0.25);
la_buom14(-0.0435, -0.33, -0.25);
la_buom15(-0.042, -0.34, -0.25);
la_buom16(-0.04, -0.35, -0.25);
la_buom17(-0.038, -0.36, -0.25);
la_buom18(-0.036, -0.37, -0.25);
la_buom19(-0.034,-0.38, -0.25);
la_buom20(-0.032, -0.39, -0.25);
}
void cot_phu() {
cot_buom(-0.1, -0.36, -0.25);
}
void buom_phu() {
la_buom1(-0.102, -0.25, -0.25);
la_buom2(-0.105, -0.26, -0.25);
la_buom3(-0.108, -0.27, -0.25);
la_buom4(-0.111, -0.28, -0.25);
la_buom5(-0.114, -0.29, -0.25);
la_buom6(-0.116, -0.3, -0.25);
la_buom7(-0.117, -0.31, -0.25);
la_buom13(-0.118, -0.32, -0.25);
la_buom14(-0.117, -0.33, -0.25);
la_buom15(-0.118, -0.34, -0.25);

la_buom16(-0.116, -0.35, -0.25);
la_buom17(-0.113, -0.36, -0.25);
la_buom18(-0.111, -0.37, -0.25);
la_buom19(-0.108, -0.38, -0.25);
la_buom20(-0.105, -0.39, -0.25);
}


void thuyen_Tung_Anh() {
than_thuyen();
khoang_lai();
cot_buom();
la_buom();
cot_phu();
buom_phu();
}



×