# Fluid and mechanics percentage anchors

Use `(N.family-T)` with an integer `T` from **0 through 100**:

- `0`: the documented start of the family.
- `50`: its midpoint in the family's parameter.
- `100`: the documented end. On a full circle or ellipse this returns to `0`.

Directions are local to the node. Rotation and scaling move the anchors with
the geometry. Horizontal contact surfaces run left to right. Straight body
boundaries follow the counterclockwise outline: bottom left to right, right
bottom to top, top right to left, left top to bottom. Full circular and
elliptical families start at the rightmost point and run counterclockwise.

## Families by object

Every family below supports all 101 integer percentages.

| Node | Families and direction |
| --- | --- |
| `fluid tank` | `surface`: left to right on the liquid line. `bottom`: straight bottom, left to right. `right`: rounded-corner end to top. `left`: top to rounded-corner start. `bottom-left`, `bottom-right`: the two actual cubic corner curves, following the counterclockwise outline. |
| `meniscus` | `surface`: actual cubic liquid curve, left to right. `bottom`, `right`, `left`: the vessel outline. |
| `rotating fluid` | `surface`: actual parabolic liquid curve, left to right. `bottom`, `right`, `left`: the vessel outline. |
| `fluid cylinder` | `surface`: left-to-right diameter of the projected liquid ellipse. `surface-rim`: the full liquid ellipse. `top`, `bottom`: full vessel ellipses. `right`: lower to upper cap centre. `left`: upper to lower cap centre. |
| `pressure element` | `inlet`, `outlet`: bottom to top across each projected face. `inlet-rim`, `outlet-rim`: full face ellipses. `axis`: inlet centre to outlet centre. `bottom`, `top`: straight body edges following the outline. |
| `flow tube` | `inlet`, `outlet`: bottom to top across each opening. `axis`: curved opening-centre line, left to right. `bottom`: actual lower cubic, left to right. `top`: actual upper cubic, right to left. |
| `liquid ring` | `outer`, `inner`: full circular boundaries. `liquid`: filled-sector centreline, from `liquid-start` to `liquid-end`. `start`, `end`: each sector's radial face, inner to outer boundary. |
| `u tube` | `left-surface`, `right-surface`: left to right across the liquid in their respective arms. `surface`: the left arm. `outer`, `inner`: left lip down the left wall, through the bend, then up to the right lip. |
| `block` | `bottom`, `right`, `top`, `left`: the four boundaries following the counterclockwise outline. |
| `pulley`, `particle`, `disk`, `ring` | `rim`: complete circumference, starting at the rightmost point and running counterclockwise. `25` is north, `50` west, `75` south. |
| `spring` node | `axis`: exact `start` to exact `end`, left to right in local coordinates. This samples the connection axis. |

For cubic curves, the percentage is the Bézier parameter; `50` is at parameter
one half. For a parabola it is horizontal progress. Circles and ellipses use
angular progress. U-tube outlines use distance along the complete wall–bend–wall
path. This states exactly how intermediate points are determined; the package
does not imply equal arc-length spacing for every kind of curve.

Cylinder `left-surface` and `right-surface` now select opposite ends of the
liquid diameter; `surface` is its centre. Pressure-element `inlet` and `outlet`
are the projected face centres, matching `inlet-50` and `outlet-50`. U-tube
`surface` matches `left-surface-50`, on real liquid rather than the empty gap.

An open vessel has no invented top edge. Use its compass anchors for the
nominal frame. Circular mechanics nodes retain ordinary numeric angle anchors
such as `(P.90)`; explicit `(P.rim-25)` is the percentage form. Ordinary TikZ
rectangle and circle shapes are unaffected. Native mechanics `outer sep`
continues to offset attachment boundaries.

## Inspect the actual geometry

```tex
\node[fluid tank,show anchors,show keys,
  physics debug/anchor list={left-surface,surface,right-surface},
  physics debug/anchor families={surface,bottom,left,right},
  physics debug/anchor samples={0,25,50,75,100}] (T) {};
\draw[->] (T.surface-25) -- ++(0,1cm);
```

```tex
\node[u tube,show anchors,show keys,
  physics debug/anchor list={left-surface,right-surface},
  physics debug/anchor families={left-surface,right-surface,inner,outer},
  physics debug/anchor samples={0,50,100}] (U) {};
```

```tex
\node[pulley,minimum size=2cm,show anchors,show keys,
  physics debug/anchor list={center},
  physics debug/anchor families={rim},
  physics debug/anchor samples={0,25,50,75,100}] (P) {};
```

The [complete gallery source](../examples/fluid-mechanics-anchor-coverage.tex)
and [rendered gallery](fluid-mechanics-anchor-coverage.pdf)
cover all fourteen native fluid/mechanics objects, transformations, and an
opaque filled block. Nearby marker numbers are separated with leader lines;
coincident anchors share one marker and remain individually listed in the table.
Debug cards show documented defaults, not the node's current key values.

Paths and assembled pics keep ordinary TikZ placement. Use `pos=.25` for a
quarter-point label on a path and `\physicshelp{rope}` or
`\physicshelp{fluid tank diagram}` for their reference cards. Node percentage
anchors use dots; pic component coordinates use hyphens. Native `show anchors`
and `show keys` apply to nodes.
