Continuation des ponts mais dessin encore incorrect.

This commit is contained in:
Yoann 2011-12-20 16:48:21 +01:00
parent 2487eaa64c
commit 1301984f70
2 changed files with 27 additions and 10 deletions

View File

@ -21,7 +21,7 @@ void recursiveSubdivide(Chose* c) {
int main() {
// Générer une tile de base
std::cout << "Initial seed = " << Chose::initialSeed << std::endl;
int size = 20000;
int size = 10000;
Vertex ne(size, size, 0);
Vertex se(size, 0, 0);
Vertex sw(0, 0, 0);

View File

@ -44,7 +44,7 @@ float ct(float x) {
}
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() {
@ -60,25 +60,39 @@ void BatimentQuadPont::triangulation() {
Vertex nwh = nw + Vertex(0,0,height+100);
Vertex l1 = ne - nw;
Vertex l2 = sw - se;
float pas = (M_PI / 60);
float n1 = l1.norm()/pas;
float n2 = l2.norm()/pas;
int steps = (2*1.7/0.1);
float pas = 0.1;
float n1 = l1.norm()/(2*1.7/0.1);
float n2 = l2.norm()/(2*1.7/0.1);
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) {
if(var == 0) continue;
std::cout << var << " \t " << nt(var,height) << std::endl;
addTriangle(new Triangle(pb,sw,swh,0xFF,0xFF,0xFF));
addTriangle(new Triangle(pa,nw,nwh,0xFF,0xFF,0xFF));
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);
a = q.corner[3] + Vertex(0,0,nt(var,height));
b = q.corner[2] + Vertex(0,0,nt(var,height));
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(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 {
addTriangle(new Triangle(pa,a,neh,0xFF,0xFF,0xFF));
addTriangle(new Triangle(pb,b,seh,0xFF,0xFF,0xFF));
@ -87,4 +101,7 @@ void BatimentQuadPont::triangulation() {
pa = a;
pb = b;
}
addTriangle(new Triangle(se,pb,seh,0xFF,0xFF,0xFF));
addTriangle(new Triangle(ne,pa,neh,0xFF,0xFF,0xFF));
}