Thanks Aditya! One can learn a lot with your answers ! In the Metafun manual I see enlonged but I did not know to use it. Best regards: Otared
On 9 Dec 2020, at 21:38, Aditya Mahajan
wrote: On Wed, 9 Dec 2020, Otared Kavian wrote:
Hi Aditya,
Thanks for the alternative method, which comes handy if one wishes to extend the straight line by a different amount at either end:
\starttext \startMPcode z1 = (1cm,3cm) ; z2 = (5cm, 9cm) ; z3 = 1cm * dir(angle (z2 - z1)) shifted z2 ; z4 = -.5cm*dir(angle(z2 - z1)) shifted z1 ; draw z1 -- z3 ; draw z4 -- z1 ; draw z1 -- z2 withcolor red ; \stopMPcode \stoptext
Or just redefine shortened to accept a pair!
\startMPdefinitions primarydef p shortened d = reverse ( ( reverse (p enlonged -xpart paired(d)) ) enlonged -ypart paired(d) ) enddef ; \stopMPdefinitions
\starttext \startMPpage z1 = (1cm,3cm) ; z2 = (5cm, 9cm) ; draw (z1--z2) shortened (-1cm,-2cm) withcolor blue ; draw (z1--z2) withcolor red ;
\stopMPpage \stoptext
Now that if you really want to shorten a path, then cutends works better than shortened
\startMPdefinitions primarydef p shortened d = reverse ( ( reverse (p enlonged -xpart paired(d)) ) enlonged -ypart paired(d) ) enddef ; \stopMPdefinitions
\starttext \startMPpage z1 = (1cm,3cm) ; z2 = (5cm, 9cm) ; path p, q; p := z1 {up} .. {right} z2; q := p shifted (6cm, 0);
draw p withcolor red ; draw p shortened (1cm,2cm) withcolor blue ;
draw q withcolor green ; draw q cutends (1cm,2cm) withcolor blue ;
\stopMPpage \stoptext
Aditya ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________