58. /* primer triangulo - inicial */
59.
60. triangulo[n].xC=triangulo[n].xA + (triangulo[n].xB - triangulo[n].xA)/4;
61. triangulo[n].yC=triangulo[n].xA +(triangulo[n].yC - triangulo[n].yA)/2;
linea 61. (triangulo[n].xA) - esto te va a dar problemas cuando los triangulos no esten en la base.
Si puedes comentar un poco tu código para que sea más facil de leer sería estupendo.
a simple vista hay un par de detalles que no me cuadran muy bien.
1. el triangulo de Sierpinsky es un triangulo "equilatero" y el que tu pones como inicial no lo es.
2. a medida que hacemos iteraciones "se multiplica por 3" el número de triangulos resultantes.
esto es un progresión geométrica, no se de donde sale el numero 6 para la cantidad de triangulos
deberian ser 1, 3, 9, 27.... etc. segun numero de iteraciones.
hay alguna razón para que sean 6 ?
Y Si!, los valores del segundo triángulo los estas machacando con el tercer triángulo, evidentemente si das la misma variable en el tercer triángulo, estas sobreescribiendo los valores que calculaste con el segundo.
creo que la mejor forma de abordar el problema sería con una función que reciba 3 puntos como parámetros
y calcule otros tres. Luego es cuestión de escoger los puntos que van en cada triangulo. Se llama esta función con cada uno de los triangulos de cada una de las iteraciones y podria calcular tantos como se quisiese.
un saludo.
Nacho