首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pgf/tikz:如何计算x坐标之间的一半距离?

pgf/tikz:如何计算x坐标之间的一半距离?
EN

Stack Overflow用户
提问于 2011-06-08 20:53:27
回答 1查看 2.7K关注 0票数 2

我正在尝试创建一个新的节点类型,如下所示:

http://www.live-wtr.ru/leo/Tikz9.png

但是不明白,如何计算x3 = x1 + (x2 - x1) /2

在这里我试着这样做,但徒劳无功。

代码语言:javascript
复制
    \pgfdeclareshape{variant}{ \inheritsavedanchors[from=rectangle]
     % this is nearly a rectangle
     \inheritanchorborder[from=rectangle] \inheritanchor[from=rectangle]{center}
     \inheritanchor[from=rectangle]{north} \inheritanchor[from=rectangle]{south}
     \inheritanchor[from=rectangle]{west} \inheritanchor[from=rectangle]{east}

     \backgroundpath{
       %{{{ store lower left in xa/ya and upper right in xb/yb
       \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
       \northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
   %}}}

       % compute x3 --- here is the problem!
       \pgf@yc = \pgf@xb - \pgf@xa
       \pgf@yc = 0.5\pgf@yc
       \pgf@xc = \pgf@xa
       \advance \pgf@xc by \pgf@yc

   %end of the problem

       \pgf@yc = \pgf@ya
       \advance\pgf@yc by - 10pt % this should be a parameter

       \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
       %{{{ construct 2 bottom lines
       \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
       \pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yc}}
       \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
   %}}}

       % Rectangle box
       \pgfpathrectanglecorners{\southwest}{\northeast}

     }
   }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-16 10:37:12

您可以使用PGF数学引擎来进行计算。

代码语言:javascript
复制
% compute x3 --- here is the problem!

\pgfmathparse{(\pgf@xb-\pgf@xa)/2}
\pgf@xc=\pgf@xa
\advance\pgf@xc by \pgfmathresult pt

%end of the problem
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6278998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档