Voce faz fora do while Triangle [] ta = new Triangle[4]; para definir quantos objetos serão armazenados no array. Dentro do while serão criados 4 objetos do tipo Triangle.
enquanto x for menor que < 4 faça, ou preencha o vetor com 4 objetos do tipo Triangle()
ta[0] = new Triangle(); //percorreu o while um vez
ta[1] = new Triangle(); //percorreu o while duas vezes
ta[2] = new Triangle(); ...
ta[3] = new Triangle();
A cada iteração será criado um novo objeto
Aconteceu Exception porque você está criando um array de objetos do tipo Triangle(), e o ta[x] dentro do while está nulo