Size of points
|Inherited||Positive output size|
|Objects||PointSize Default Values|
PointSize determines the physical size of
points. The value should be specified as an absolute physical length
including a length unit such as
= 1.5*unit::mm. Numbers without a physical unit give the
size in mm.
Typical points have a size of only a few pixels on the screen.
Hence, the renderers cannot always react to small changes of the
because the actual size of the graphical points can attain only discrete
Depending on your hardware, there is a maximal size of the graphical
points that can be rendered in 3D. If the
too large, the 3D renderer uses the maximal size that is supported.
Many graphical objects such as curves, surfaces etc. are approximated
by a numerical mesh. With
the points of this mesh become visible. These points react to
PointSize cannot be animated.
We plot a cluster of points with random sizes within the unit square:
r := frandom: plot(plot::Point2d(r(),r(), PointSize = 2*r()*unit::mm) $ i = 1 .. 200)
Due to pixelation, there is only a discrete number of
that the renderers can display faithfully. Further, note that the
large points may protrude over the edges of the viewing box without
plot(plot::Point2d([i, 5], PointSize = i*0.1*unit::mm, Color = RGB::Red) $ i = 1 .. 30, plot::Point2d([3*i, 15], PointSize = i*unit::mm, Color = RGB::Green) $ i = 1 .. 10, plot::Point2d([9*i , 30], PointSize = i*unit::cm, Color = RGB::Blue) $ i in [0.3, 0.5, 0.8, 1.3, 2, 3], ViewingBox = [0 .. 30, 0 .. 35], Axes = Boxed)
Here are the same points in 3D. Note the threshold for
which the graphical points do not grow:
plot(plot::Point3d([i, 5, 0], PointSize = i*0.1*unit::mm, Color = RGB::Red) $ i = 1 .. 30, plot::Point3d([3*i, 15, 0], PointSize = i*unit::mm, Color = RGB::Green) $ i = 1 .. 10, plot::Point3d([9*i , 30, 0], PointSize = i*unit::cm, Color = RGB::Blue) $ i in [0.3, 0.5, 0.8, 1.3, 2, 3], ViewingBox = [0 .. 30, 0 .. 35, -1 .. 1], Axes = Boxed, CameraDirection = [0, -10, 1000], YXRatio = 2/3)
We can access the
PointSize attribute from
a point and change it:
p := plot::Point2d(1, 2): p::PointSize := 4*unit::inch: p::PointSize