#include #include void relax( double* pos, long* links, double* mrel1, double* mrel2, double* lengths, char* push, char* pull, int nlinks, int iters) { int i, l, p1, p2; double x1, x2, y1, y2, dx, dy, dist, change; // printf("%d, %d\n", iters, nlinks); for( i=0; i lengths[l] ) dist = lengths[l]; change = (lengths[l]-dist) / dist; dx *= change; dy *= change; pos[p1] -= mrel2[l] * dx; pos[p1+1] -= mrel2[l] * dy; pos[p2] += mrel1[l] * dx; pos[p2+1] += mrel1[l] * dy; } } }