41 lines
1.9 KiB
Text
41 lines
1.9 KiB
Text
ClearAll[CistercianNumberEncodeHelper, CistercianNumberEncode]
|
|
\[Delta] = 0.25;
|
|
CistercianNumberEncodeHelper[0] := {}
|
|
CistercianNumberEncodeHelper[1] := Line[{{0, 1}, {\[Delta], 1}}]
|
|
CistercianNumberEncodeHelper[2] := Line[{{0, 1 - \[Delta]}, {\[Delta], 1 - \[Delta]}}]
|
|
CistercianNumberEncodeHelper[3] := Line[{{0, 1}, {\[Delta], 1 - \[Delta]}}]
|
|
CistercianNumberEncodeHelper[4] := Line[{{0, 1 - \[Delta]}, {\[Delta], 1}}]
|
|
CistercianNumberEncodeHelper[5] := Line[{{0, 1 - \[Delta]}, {\[Delta], 1}, {0, 1}}]
|
|
CistercianNumberEncodeHelper[6] := Line[{{\[Delta], 1 - \[Delta]}, {\[Delta], 1}}]
|
|
CistercianNumberEncodeHelper[7] := Line[{{\[Delta], 1 - \[Delta]}, {\[Delta], 1}, {0, 1}}]
|
|
CistercianNumberEncodeHelper[8] := Line[{{0, 1 - \[Delta]}, {\[Delta], 1 - \[Delta]}, {\[Delta], 1}}]
|
|
CistercianNumberEncodeHelper[9] := Line[{{0, 1}, {\[Delta], 1}, {\[Delta], 1 - \[Delta]}, {0, 1 - \[Delta]}}]
|
|
CistercianNumberEncode::nnarg = "The argument `1` should be an integer between 0 and 9999 (inclusive).";
|
|
CistercianNumberEncode[n_Integer] := Module[{digs},
|
|
If[0 <= n <= 9999,
|
|
digs = IntegerDigits[n, 10, 4];
|
|
Graphics[{Line[{{0, 0}, {0, 1}}],
|
|
CistercianNumberEncodeHelper[digs[[4]]],
|
|
GeometricTransformation[CistercianNumberEncodeHelper[digs[[3]]],
|
|
ReflectionTransform[{1, 0}]],
|
|
GeometricTransformation[CistercianNumberEncodeHelper[digs[[2]]],
|
|
ReflectionTransform[{0, 1}, {0, 1/2}]],
|
|
GeometricTransformation[CistercianNumberEncodeHelper[digs[[1]]],
|
|
RotationTransform[Pi, {0, 1/2}]]
|
|
},
|
|
PlotRange -> {{-1.5 \[Delta], 1.5 \[Delta]}, {0 - 0.5 \[Delta],
|
|
1 + 0.5 \[Delta]}},
|
|
ImageSize -> 50
|
|
]
|
|
,
|
|
Message[CistercianNumberEncode::nnarg, n]
|
|
]
|
|
]
|
|
CistercianNumberEncode[0]
|
|
CistercianNumberEncode[1]
|
|
CistercianNumberEncode[20]
|
|
CistercianNumberEncode[300]
|
|
CistercianNumberEncode[4000]
|
|
CistercianNumberEncode[5555]
|
|
CistercianNumberEncode[6789]
|
|
CistercianNumberEncode[1337]
|