commit 1301984f708a62985d74a7ac333724790201becd
parent 2487eaa64c5535d7e4f14423e80ceed441f13b5c
Author: Yoann <yoann.b87@voila.fr>
Date: Tue, 20 Dec 2011 16:48:21 +0100
Continuation des ponts mais dessin encore incorrect.
Diffstat:
2 files changed, 27 insertions(+), 10 deletions(-)
diff --git a/main.cpp b/main.cpp
@@ -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);
diff --git a/rules/batiment/batimentquadpont.cpp b/rules/batiment/batimentquadpont.cpp
@@ -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,24 +60,38 @@ 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 << l1.norm() << std::endl;
- std::cout << std::endl << std::endl;
+ addTriangle(new Triangle(pb,sw,swh,0xFF,0xFF,0xFF));
+ addTriangle(new Triangle(pa,nw,nwh,0xFF,0xFF,0xFF));
- for(var=-M_PI/2; var <= M_PI/2; var+=pas) {
- if(var == 0) continue;
- 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);
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));
@@ -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));
}