|
Server IP : 192.168.23.10 / Your IP : 216.73.216.120 Web Server : Apache System : Linux echo.premieradvertising.com 5.14.0-362.8.1.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 7 14:54:22 EST 2023 x86_64 User : rrrallyteam ( 1049) PHP Version : 8.1.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF Directory (0755) : /usr/local/../share/libtool/../audit/../perl5/Module/../Text/../Module/../../graphviz/gvpr/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
/* Given node name and angle, rotate a layout using the given
* node as origin.
*/
BEGIN {
double x,y;
double x0,y0;
double x1,y1;
double angle, cosa, sina;
int cnt, sz;
void rotate (double a, double b) {
a -= x0;
b -= y0;
x1 = a*cosa - b*sina;
y1 = a*sina + b*cosa;
}
char* rotateE (char* p) {
char* newpos = "";
cnt = sscanf (p, "e,%lf,%lf%n", &x, &y, &sz);
if (cnt == 2) {
rotate (x,y);
newpos = newpos + sprintf ("e%lf,%lf ", x1, y1);
p = substr(p, sz);
}
cnt = sscanf (p, "s,%lf,%lf%n", &x, &y, &sz);
if (cnt == 2) {
rotate (x,y);
newpos = newpos + sprintf ("s%lf,%lf ", x1, y1);
p = substr(p, sz);
}
while (sscanf (p, "%lf,%lf%n", &x, &y, &sz) == 2) {
rotate (x,y);
newpos = newpos + sprintf ("%lf,%lf ", x1, y1);
p = substr(p, sz);
}
return newpos;
}
}
BEG_G {
node_t ctr = node ($, ARGV[0]);
sscanf (ARGV[1], "%f", &angle);
cosa = cos(angle);
sina = sin(angle);
sscanf (ctr.pos, "%f,%f", &x0, &y0);
$.bb ="";
}
N {
sscanf ($.pos, "%f,%f", &x, &y);
rotate (x,y);
$.pos = sprintf ("%f,%f", x1, y1);
}
E {
$.pos = rotateE($.pos);
}