Ejemplo n.º 1
0
  public void transform() {
    clear();
    // transform axes
    for (int i = 0; i < 6; i += 2) {
      Point3D sta = vertices.get(indices.get(i)).mul(fMat);
      Point3D end = vertices.get(indices.get(i + 1)).mul(fMat);

      double x1Axes = ((0.5 * (sta.x / sta.w + 1)) * (w - 1));
      double x2Axes = ((0.5 * (end.x / end.w + 1)) * (w - 1));
      double y1Axes = ((0.5 * (1 - sta.y / sta.w)) * (h - 1));
      double y2Axes = ((0.5 * (1 - end.y / end.w)) * (h - 1));

      g.setColor(new Color((int) (66666 * Math.random() + 100)));
      g.drawLine((int) x1Axes, (int) y1Axes, (int) x2Axes, (int) y2Axes);
    }

    // transform solids
    for (int i = 6; i < 30; i += 3) {
      Point3D prv = vertices.get(indices.get(i)).mul(fMat);
      Point3D drh = vertices.get(indices.get(i + 1)).mul(fMat);
      Point3D tre = vertices.get(indices.get(i + 2)).mul(fMat);
      int col = (int) (66666 * Math.random() + 100);

      clipW(prv, drh, tre, col);
    }
  }