Post 1.1 I am considering a complete SVG binding, if I do it would be a
good addition to that. Thanks
David Botton


On Wed, May 6, 2015 at 12:03 PM Gautier de Montmollin <[email protected]>
wrote:

> Found a convenient solution by drawing the arrow tips "by hand" (code
> reused from TeXCAD :-) )
>
> -----8<--------------8<--------------8<--------------8<---------
>   angle_vect: constant:= pi - 0.25;
>   cos_angle_vect: constant Real:= Cos(angle_vect);
>   sin_angle_vect: constant Real:= Sin(angle_vect);
>
>   arrow_length: constant:= 15;
>
>   -- Tips of an arrow pointing to (a,b), in direction of (u,v)
>   -- Code from TeXCAD
>   procedure Arrow_tip(
>     a,b, u,v:     Integer;
>     c,d, e,f: out Integer -- (c,d) (e,f) are the tips points
>   )
>   is
>     un,vn,luv, iv_luv,absc,ordo: Real;
>     f_shrink: constant:= 1.0/4.0;
>   begin
>     luv:= Sqrt(Real(u*u+v*v));
>     if Almost_zero(luv * f_shrink) then
>       c:= a;
>       d:= b;
>       e:= a;
>       f:= b;
>     else
>       iv_luv:= 1.0 / luv;
>       un:= iv_luv * Real(u);
>       vn:= iv_luv * Real(v);
>       absc:= cos_angle_vect * Real(arrow_length);
>       ordo:= sin_angle_vect * Real(arrow_length);
>       c:= Integer(Real(a) + un*absc + vn*ordo);
>       d:= Integer(Real(b) - un*ordo + vn*absc);
>       e:= Integer(Real(a) + un*absc - vn*ordo);
>       f:= Integer(Real(b) + un*ordo + vn*absc);
>     end if;
>   end Arrow_tip;
> -----8<--------------8<--------------8<--------------8<---------
>
> Then:
>
> -----8<--------------8<--------------8<--------------8<---------
>       Arrow_tip(a,b, a-a1, b-b1, c,d,e,f);
>       new_arrow.content.Create_XML_Element (new_arrow.area, SVG_Namespace,
> "path");
>       new_arrow.content.Attribute ("d",
>         'M' & Integer'Image(a1) & Integer'Image(b1) &  --  Move To
>         'L' & Integer'Image(a) & Integer'Image(b) &    --  Line To
>         'M' & Integer'Image(a) & Integer'Image(b) &    --  Move To
>         'L' & Integer'Image(c) & Integer'Image(d) &    --  Line To
>         'L' & Integer'Image(e) & Integer'Image(f) &    --  Line To
>         'Z'                                            --  Close Path
>       );
>       new_arrow.content.Attribute ("stroke", "#331111");
>       new_arrow.content.Attribute ("stroke-width", "1.5");
>       new_arrow.content.Attribute ("style", "fill: #001100;");
> -----8<--------------8<--------------8<--------------8<---------
>
> ------------------------------------------------------------------------------
> One dashboard for servers and applications across Physical-Virtual-Cloud
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> _______________________________________________
> Gnoga-list mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/gnoga-list
>
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Gnoga-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gnoga-list

Reply via email to