Hmm, diagonalised carts generally move in straight[1] (if diagonal) lines, so it's not an option for plotting curves or the like. However, there's some potential for doing logic work with them by switching them via roller.
Let's use a cart moving from 'bottom left' to 'top right', i.e. SW to NE:
- rollers working S->N and W->E will simply re-establish their speed in the current direction.
- rollers working N->S switch their movement direction to NW->SE
- rollers working E->W switch the movement direction to SE->NW
Similarly, rollers working N->S will switch carts moving SW->NE to NW->SE and carts moving SE->NW to NE->SW.
Once a cart's moving diagonally, encountering rollers will only switch it between diagonals. To return to cardinal movement, you must ram the cart into a wall. I have a wall-ringed 'billard table' testing ground (size 18x35), with rollers around the edges to return the cart to the starting position. Current power consumption is around 700, and i haven't installed half of what i want tested. I started out with a simple S->N starting track and E<->W rollers to send the cart on different diagonals. Today, i've created the first latches and the first functional device - a repeater (of course):
All the vertical lines are carved track. Orientation doesn't matter when the cart's moving on a diagonal, it won't follow tracks anyway. The design is pretty simple, all rollers are currently 'low' speed to make it easier to follow the cart's moves, it's just two closed loops, each with a pressure plate to activate the neighbour's 'exit' roller, which will time out once the cart's in that loop long enough. Schematics:
.....S..
....p...
...E...W
..s.....
.....N..
e...w
...P.
..n..
N,S etc. - rollers pushing in the indicated direction, capitals the rollers in the first, minuscules rollers in the second loop. Pressure plate p, when passed, activates roller w, pressure plate P activates roller E. E must be de-activated by lever to start the sequence. In this configuration, each plate repeats with a period of ~155 steps, and the cycle is stable. Longer loops (at least with 'low' speed rollers) suffer from 'orbital decay', one movement component tends to be bigger than the other, with the final result that the cart misses the next roller and leaves the array. At least that could serve as another timing device...
[1] okay, mostly straight, because of the way friction works. But when working on normal track-engraved floor, friction is so low that it'll take 50 tiles for a lowest, 200 for a low and 1250 for a highest-speed cart to lose all of its movement part in that direction.
...
o.k., noted as another possibility - use non-track floor and diagonalise a highest-speed minecart with lower-speed rollers. That should plot curves, sort of.
P.S.: the water-logic base-seven adder works. It's absurdly impractical in the current implementation, but i added 1+4+6, and it worked as desired: the 1 was correctly loaded, the first addition got it to five, and adding six got the value to seven. Clearing the 'pumped' memory then loading the remainder accurately got a four into storage. There'd be a lot of automated machinery required to queue up all the necessary operations to implement that as a proper adder, though, not even to mention the extra hacks needed to get a (not pumpable) 'one' back out of memory and dealing with 'carries' when advancing to numbers with more than one heptal place.