Menu

#42 Length units different for 2-d and 3-d coordinates

Future
open-accepted
nobody
None
9
2018-12-31
2008-11-27
No

This may or may not be a bug: When switching from 2-d to 3-d coordinates, a given length of, say, 5pt is very different. Compare these two lengths:

\tikz \draw (0,0)   -- (5pt,0);
\tikz \draw (0,0,0) -- (5pt,0,0);

Is there any reason why these lengths are different?

In any event, a quick fix is to multiply the 3-d coordinates by 0.03515 (or, for convenience, 0.035):

\tikz \draw (0,0)   -- (5pt,0);
\tikz \draw (0,0,0) -- (0.03515*5pt,0,0);

Thanks,
Nate

Discussion

  • Till Tantau

    Till Tantau - 2008-12-03

    Hi!

    indeed, there is a reason. The reason is that in the the 3d-coordinate system you actually specify three factors (x,y,z) and three unit vectors get multiplied by these factors. Thus, in some sense it does not reall "make sense" to give a coordinate like (5pt,0,0) because the "5pt" is a dimension, not a factor. However, the 5pt is internally tolerate for different reasons and gets converted to the factor "5". Since the default unit vector length is 1cm, this in turn yields a vector of length 5cm.

    There used to be the same behaviour with the 2d-coordinate system, but, there, it was even more counter-intuitive that a coordinate like (5pt,0) would yield (5cm,0cm) and this was changed and, now, things like (5pt,0) are "quitely tolerated".

    For 3d-coordinates I'm not really sure whether things like (5pt,0,0) should have the "expected" effect. For instance, when you say "(0,0,5pt)", how long do you expect the step in the z-direction to be? 5pt? or perhaps 5pt*1/sqrt(2) or something like this since the z-axis is shortened by default.

    Anyway, I see that people will expect (5pt,0,0) to have the same effect as (5pt,0), so I'll put this as a feature request.

    Best regards,
    Till

     
  • Till Tantau

    Till Tantau - 2008-12-03
    • status: open --> open-accepted
     
  • Nathaniel Derby

    Nathaniel Derby - 2008-12-14

    Hello Till,

    Thanks so much! I use dimensions like 2pt in 3-d to indicate tick marks on 3-d graphs, which I want to (a) be the same length as those in my 2-d graphs, and (b) not want to change when I rescale something.

    When I have some time, I'll add two of my 3-d graph examples to texample.net so that you (or anyone else who is interested) can see what I mean.

    In any event, it would be great if you could add this feature request. Thanks so much!

    Nate

     
  • Till Tantau

    Till Tantau - 2013-09-30
    • Group: --> Future
    • Priority: 5 --> 9