Continuation des ponts mais dessin encore incorrect.
This commit is contained in:
parent
2487eaa64c
commit
1301984f70
2
main.cpp
2
main.cpp
|
@ -21,7 +21,7 @@ void recursiveSubdivide(Chose* c) {
|
||||||
int main() {
|
int main() {
|
||||||
// Générer une tile de base
|
// Générer une tile de base
|
||||||
std::cout << "Initial seed = " << Chose::initialSeed << std::endl;
|
std::cout << "Initial seed = " << Chose::initialSeed << std::endl;
|
||||||
int size = 20000;
|
int size = 10000;
|
||||||
Vertex ne(size, size, 0);
|
Vertex ne(size, size, 0);
|
||||||
Vertex se(size, 0, 0);
|
Vertex se(size, 0, 0);
|
||||||
Vertex sw(0, 0, 0);
|
Vertex sw(0, 0, 0);
|
||||||
|
|
|
@ -44,7 +44,7 @@ float ct(float x) {
|
||||||
}
|
}
|
||||||
|
|
||||||
float nt(double x, int height) {
|
float nt(double x, int height) {
|
||||||
return (ct(x) + -ct(-M_PI/2.))/(ct(0)+ -ct(-M_PI/2.)) * height;
|
return (ct(x) + -ct(-1.7))/(ct(0)+ -ct(-1.7)) * height;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BatimentQuadPont::triangulation() {
|
void BatimentQuadPont::triangulation() {
|
||||||
|
@ -60,25 +60,39 @@ void BatimentQuadPont::triangulation() {
|
||||||
Vertex nwh = nw + Vertex(0,0,height+100);
|
Vertex nwh = nw + Vertex(0,0,height+100);
|
||||||
Vertex l1 = ne - nw;
|
Vertex l1 = ne - nw;
|
||||||
Vertex l2 = sw - se;
|
Vertex l2 = sw - se;
|
||||||
float pas = (M_PI / 60);
|
|
||||||
float n1 = l1.norm()/pas;
|
int steps = (2*1.7/0.1);
|
||||||
float n2 = l2.norm()/pas;
|
float pas = 0.1;
|
||||||
|
float n1 = l1.norm()/(2*1.7/0.1);
|
||||||
|
float n2 = l2.norm()/(2*1.7/0.1);
|
||||||
n1=n1;
|
n1=n1;
|
||||||
|
n2=n2;
|
||||||
|
int middle = steps/2;
|
||||||
|
int n;
|
||||||
|
|
||||||
std::cout << std::endl << std::endl;
|
std::cout << std::endl << l1.norm() << std::endl;
|
||||||
|
|
||||||
for(var=-M_PI/2; var <= M_PI/2; var+=pas) {
|
addTriangle(new Triangle(pb,sw,swh,0xFF,0xFF,0xFF));
|
||||||
if(var == 0) continue;
|
addTriangle(new Triangle(pa,nw,nwh,0xFF,0xFF,0xFF));
|
||||||
std::cout << var << " \t " << nt(var,height) << std::endl;
|
|
||||||
|
for(var=-1.7,n=0; var <= 1.7; var+=pas,n++) {
|
||||||
|
std::cout << var << std::endl;
|
||||||
|
//std::cout << var << " \t " << nt(var,height) << std::endl;
|
||||||
q.offset(W,-n2);
|
q.offset(W,-n2);
|
||||||
a = q.corner[3] + Vertex(0,0,nt(var,height));
|
a = q.corner[3] + Vertex(0,0,nt(var,height));
|
||||||
b = q.corner[2] + Vertex(0,0,nt(var,height));
|
b = q.corner[2] + Vertex(0,0,nt(var,height));
|
||||||
|
|
||||||
addQuad(a,b,pb,pa,0xFF,0xFF,0xFF);
|
addQuad(a,b,pb,pa,0xFF,0xFF,0xFF);
|
||||||
if( var < 0) {
|
if( n < middle) {
|
||||||
addTriangle(new Triangle(pa,a,nwh,0xFF,0xFF,0xFF));
|
addTriangle(new Triangle(pa,a,nwh,0xFF,0xFF,0xFF));
|
||||||
addTriangle(new Triangle(pb,b,swh,0xFF,0xFF,0xFF));
|
addTriangle(new Triangle(pb,b,swh,0xFF,0xFF,0xFF));
|
||||||
}
|
}
|
||||||
|
else if(n == middle) {
|
||||||
|
addTriangle(new Triangle(pa,a,nwh,0xFF,0xFF,0xFF));
|
||||||
|
addTriangle(new Triangle(pb,b,swh,0xFF,0xFF,0xFF));
|
||||||
|
addTriangle(new Triangle(a,neh,nwh,0xFF,0xFF,0xFF));
|
||||||
|
addTriangle(new Triangle(b,seh,swh,0xFF,0xFF,0xFF));
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
addTriangle(new Triangle(pa,a,neh,0xFF,0xFF,0xFF));
|
addTriangle(new Triangle(pa,a,neh,0xFF,0xFF,0xFF));
|
||||||
addTriangle(new Triangle(pb,b,seh,0xFF,0xFF,0xFF));
|
addTriangle(new Triangle(pb,b,seh,0xFF,0xFF,0xFF));
|
||||||
|
@ -87,4 +101,7 @@ void BatimentQuadPont::triangulation() {
|
||||||
pa = a;
|
pa = a;
|
||||||
pb = b;
|
pb = b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addTriangle(new Triangle(se,pb,seh,0xFF,0xFF,0xFF));
|
||||||
|
addTriangle(new Triangle(ne,pa,neh,0xFF,0xFF,0xFF));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user