ich bin dabei eine funktion zum zeichnen von kreisbogen in xlib zu implementieren mittels XDrawArc
b: start punkt
a: end punkt
m:mittel des kreises
Code: Alles auswählen
start_angle = atan( abs(yb-ym) / abs(xb-xm) );
double start_grad = 0;
if( (xb >= xm) && (yb >= ym) ) // erste dreieck
{
start_grad = (start_angle / 3.14)*180;
}
else if( ( xb <= xm) && (yb >= ym) ) // 2. dreieck
{
start_grad = ((start_angle / 3.14)*180)+90 ;
}
else if( (xb <= xm) && (yb <= ym) ) // 3. dreieck
{
start_grad = ((start_angle / 3.14)*180)+180 ;
}
else// (xb >= xm) && (yb <= ym) // 4. dreieck
{
start_grad = ((start_angle / 3.14)*180)+270 ;
}
ende_angle = atan( abs(ya-ym) / abs(xa-xm) );
ende_angle2 = atan(abs(xb-xm) / abs(yb-ym));
//ende_angle = atan( ya-ym / xa-xm );
double ende_grad = ((ende_angle+ende_angle2) / 3.14)*180;
//printf("start_ang : %lf ",start_grad);
//printf("ende_ang : %lf ",ende_grad);
rect.x = xm-arc_rad;
rect.y = wnd_height-(ym+arc_rad);
rect.height = rect.width = 2*arc_rad;
XDrawArc(display, hwndAct, gc, rect.x , rect.y , rect.width, rect.height, start_grad*64 , ende_grad*64);
danke im voraus
youssef