> so is there a way to express |z1+z2| in terms of |z1| and |z2| with no > x1*x2 and y1*y2 involved? > thanks

Suppose z1 and z2 are on the unit circle so |z1|=1 and |z2|=1. Depending on the location of z1 and z2 the value |z1+z2| can take on values from 0 to 2. So the answer to your question is no.