Stegreifentwerfen "gesteckt nicht geschraubt 2.0"

digitales Stegreifentwerfen
G. Wurzer, W.E. Lorenz, S. Swoboda. Im Zuge der Lehrveranstaltung wird die Digitalisierung vom Entwurfsprozess bis zur Produktion an Hand einer selbsttragenden Holzstruktur untersucht: vom Stadtmöbel über die Skulptur zur Brücke. ...

dap – digital architecture and planning

TU Wien | dap – digital architecture and planning
Logo und CI Entwicklung (Logo, Briefpapier, Visitenkarte)

SimAUD 2020:
Proceedings

2020 Proceedings of the Symposium on Simulation for Architecture and Urban Design
A. Chronis, G. Wurzer, W.E. Lorenz, C.M. Herr, U. Pont, D. Cupkova, G. Wainer (ed.)
SimAUD, Vienna (online), 2020, ISBN: 978-1-56555-371-2; 622 pages
zu den Proceedings

Golden Rectangle

This project uses three.js. Make your choice and press reset. Or press play button and change settings.

code

///////////////////////////////////
// GOLDEN RATIO ///////////////////
/* global variable Golden Ratio */

function goldenRatio(b, maxIterations) {
  var x = 0;
  var y = 0;
  var z = 0;
  var a = 1.0;
  var goldenRatio = 1.6180339887;
  var c = b;
  var r = 1.0;
  var fact = program.get('position');

  var i = 1;

  while (i <= maxIterations){
    r = mod (i, 4); //(i % 4);
    if (i == 1) {
      x = x + b / 2;
      y = y + b / 2;
      z = z + b / 2;
    } else if (i > 1) {
      if (r == 1) { // 0.25
        x = x - ((c - b) / 2);
        y = y + ((c - b) / 2) * fact;
        z = z - ((c + b) / 2);
      } else if (r == 2) { // 0.5
        x = x + ((c + b) / 2); // red
        y = y + ((c - b) / 2) * fact; // green
        z = z - ((c - b) / 2); // blue
      } else if (r == 3) { // 0.75
        x = x + ((c - b) / 2);
        y = y + ((c - b) / 2) * fact;
        z = z + ((c + b) / 2);
      } else if (r == 0) { // 0
        x = x - ((c + b) / 2);
        y = y + ((c - b) / 2) * fact;
        z = z + ((c - b) / 2);
      };
    };
    a = b / goldenRatio;

    //if (i == maxIteration) {
    drawCube (b, x, y, z);
    //}

    c = b;
    b = a;
    i = i + 1;
  }
}

function drawCube(b, x, y, z) {
  /* construct object */
  var object = new THREE.Object3D();
  /* cube */
  var mGeometry = new THREE.BoxGeometry( b, b, b );
  var mMaterial = new THREE.MeshLambertMaterial( { color: 0xffff00 } );
  var cube = new THREE.Mesh( mGeometry, mMaterial );
  cube.position.set(x - 2, y, z + 1);
  /* casting shadows */
  cube.castShadow = true;
  object.add ( cube )
  scene.add ( object );
}