void Curva::calculaViewPort(Ponto min, Ponto max, int w, int h) { vp_parametricas.clear(); vp_pontos.clear(); vp_tangentes.clear(); foreach (Ponto p, getParametricas()) { Ponto vpponto; vpponto.setX((w - 2*W_PONTO) * (p.getX() - min.getX()) / (max.getX() - min.getX()) + W_PONTO); vpponto.setY((h - 2*W_PONTO) * (p.getY() - min.getY()) / (max.getY() - min.getY()) + W_PONTO); vp_parametricas.append(vpponto); }
void Filho::preparar() { int tpontos = pontos.size(), lados = tpontos / 3, j; buffer = buffer = (GLuint*)malloc(sizeof(GLuint)*tpontos * 3); nvertices = tpontos * 3; glEnableClientState(GL_VERTEX_ARRAY); float *vertexB = (float *)malloc(sizeof(float)* nvertices); j = 0; for (int i = 0; i<tpontos; i++) { Ponto xyz = pontos.at(i); vertexB[j + 0] = xyz.getX(); vertexB[j + 1] = xyz.getY(); vertexB[j + 2] = xyz.getZ(); j += 3; } nvertices = j; glGenBuffers(1, buffer); glBindBuffer(GL_ARRAY_BUFFER, buffer[0]); glBufferData(GL_ARRAY_BUFFER, nvertices*sizeof(float), vertexB, GL_STATIC_DRAW); free(vertexB); }
int MemoriaInterna::pontoToKey(const Ponto& p) { int x = p.getX(); int y = p.getY(); int ret = ((unsigned char)p.getX() << 8) | (unsigned char)(p.getY()); return ret; }
int MemoriaInterna::pontoToKey(const Ponto& p) { int x = p.getX(); int y = p.getY(); int ret = (x - MAP_MIN) * MAP_DIM + (y - MAP_MIN); return ret; }
foreach (Ponto p, getPontos()) { Ponto vpponto; vpponto.setX((w - 2*W_PONTO) * (p.getX() - min.getX()) / (max.getX() - min.getX()) + W_PONTO); vpponto.setY((h - 2*W_PONTO) * (p.getY() - min.getY()) / (max.getY() - min.getY()) + W_PONTO); vp_pontos.append(vpponto); }