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