Use the published Wallace threadcount, and scale the weave to the sett
Two separate faults. The pattern was wrong, and the scale was broken. Pattern: the sett is published as K/4 R32 K32 Y/4, the slashes marking pivots, which reflects out to K4 R32 K32 Y4 K32 R32 — 136 threads, about half black and half red with a yellow line worth 3%. I had the structure inverted: the yellow overstripe belongs down the centre of a wide black band, and the narrow black guard belongs between two red blocks. Mine put yellow between narrow blacks and the wide black elsewhere, which is why it read as a generic check rather than as Wallace. Scale: thread width was a fixed fraction of the screen while the sett grew from 84 threads to 216, so a repeat became 933dp on a 360dp phone and only 0.39 of one was ever visible. The cloth had zoomed into a few enormous blocks and stopped being a weave at all — that is the part that got worse, not the colours. Thread width is now derived from the sett, so a couple of full repeats are on screen whatever the threadcount says, and changing the count rescales instead of silently magnifying. The icon is generated from the same numbers at one repeat across the adaptive safe zone. Threadcount cross-checked against two independent sources rather than guessed; recorded in Tartan.kt and the README so the next change starts from the published figures. Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_015qjfMiPUDshdKEUa6vxqzN
This commit is contained in:
@@ -31,6 +31,7 @@ import androidx.compose.ui.unit.sp
|
||||
import kotlinx.coroutines.delay
|
||||
import org.prolibertate.games.R
|
||||
import org.prolibertate.games.ui.theme.TartanBackground
|
||||
import org.prolibertate.games.ui.theme.threadWidthFor
|
||||
|
||||
/** How long the splash holds at full opacity before fading. */
|
||||
private const val SPLASH_HOLD_MILLIS = 2_000L
|
||||
@@ -75,9 +76,10 @@ fun SplashScreen(
|
||||
// longer in scope.
|
||||
val shortestSide = minOf(maxWidth, maxHeight).value
|
||||
|
||||
// Weave scale follows the screen so the cloth reads the same on a phone
|
||||
// and a tablet rather than turning into a fine grid on a large display.
|
||||
val threadWidth = (shortestSide * 0.012f).dp
|
||||
// Weave scale is derived from the sett, not a fixed fraction, so a
|
||||
// couple of full repeats are always on screen whatever the threadcount
|
||||
// says and whatever the display is.
|
||||
val threadWidth = threadWidthFor(across = shortestSide.dp, repeats = 2f)
|
||||
val titleSize = (shortestSide * 0.13f).sp
|
||||
TartanBackground(
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
|
||||
@@ -31,24 +31,42 @@ fun List<TartanStripe>.pivoted(): List<TartanStripe> =
|
||||
if (size < 3) this else this + drop(1).dropLast(1).reversed()
|
||||
|
||||
/**
|
||||
* The Wallace sett, as a half-sett between the gold line and the centre of a
|
||||
* narrow black guard.
|
||||
* The Wallace sett, from its published threadcount: **K/4 R32 K32 Y/4**.
|
||||
*
|
||||
* Matched by eye to a reference swatch rather than to a registered
|
||||
* threadcount: red ground, black bands alternating wide and narrow, and one
|
||||
* thin gold overstripe per repeat, flanked by black on both sides. The
|
||||
* proportions are the point — swapping in registered counts is an edit to this
|
||||
* list and nothing else.
|
||||
* The slashes mark the pivots, so this is the half-sett and it reflects out to
|
||||
* `K4 R32 K32 Y4 K32 R32` — 136 threads, roughly half black, half red, with a
|
||||
* yellow line worth 3%. Two consequences that are easy to get backwards and
|
||||
* that define the pattern:
|
||||
*
|
||||
* - the yellow overstripe runs down the **centre of a wide black band**, not
|
||||
* between red and black;
|
||||
* - the narrow black guard sits **between two red blocks**, splitting the red
|
||||
* into pairs.
|
||||
*/
|
||||
val WallaceSett: List<TartanStripe> = listOf(
|
||||
TartanStripe(WallaceGold, 6),
|
||||
TartanStripe(WallaceBlack, 6),
|
||||
TartanStripe(WallaceRed, 36),
|
||||
TartanStripe(WallaceBlack, 24),
|
||||
TartanStripe(WallaceRed, 36),
|
||||
TartanStripe(WallaceBlack, 6),
|
||||
TartanStripe(WallaceBlack, 4),
|
||||
TartanStripe(WallaceRed, 32),
|
||||
TartanStripe(WallaceBlack, 32),
|
||||
TartanStripe(WallaceGold, 4),
|
||||
).pivoted()
|
||||
|
||||
/** Threads in one full repeat of a sett. */
|
||||
val List<TartanStripe>.threadsPerRepeat: Int get() = sumOf { it.threads }
|
||||
|
||||
/**
|
||||
* The thread width that fits [repeats] repeats of [sett] across [across].
|
||||
*
|
||||
* Scale has to be derived from the sett rather than fixed, because changing a
|
||||
* threadcount changes how many threads a repeat contains — a fixed width and a
|
||||
* larger sett silently zooms in until the cloth is a couple of enormous blocks
|
||||
* and stops reading as tartan at all.
|
||||
*/
|
||||
fun threadWidthFor(
|
||||
sett: List<TartanStripe> = WallaceSett,
|
||||
across: Dp,
|
||||
repeats: Float = 2f,
|
||||
): Dp = across / (sett.threadsPerRepeat * repeats)
|
||||
|
||||
/**
|
||||
* Draws a tartan by laying the sett down vertically as warp, then across as
|
||||
* weft at half opacity. The overlap is what produces the blended squares and
|
||||
|
||||
@@ -2,13 +2,16 @@
|
||||
<!--
|
||||
A single square of the Wallace tartan, set on the bias.
|
||||
|
||||
Generated from the same sett as WallaceSett in Tartan.kt: a half-sett of
|
||||
gold 6, black 6, red 36, black 24, red 36, black 6, reflected about its
|
||||
pivots. Warp is drawn opaque, weft over it at half opacity, which is what
|
||||
gives the blended squares rather than a flat grid.
|
||||
Generated from the published threadcount K/4 R32 K32 Y/4 — the same numbers
|
||||
as WallaceSett in Tartan.kt. The slashes are pivots, so the half-sett
|
||||
reflects out to K4 R32 K32 Y4 K32 R32: the yellow overstripe runs down the
|
||||
centre of a wide black band, and the narrow black guard splits the red into
|
||||
pairs.
|
||||
|
||||
The paths run well past the viewport because the whole thing is rotated 45
|
||||
degrees; the overspill is what keeps the corners covered.
|
||||
Warp is opaque, weft laid over it at half opacity, which is what gives the
|
||||
blended squares rather than a flat grid. Paths run well past the viewport
|
||||
because the group is rotated 45 degrees; the overspill keeps the corners
|
||||
covered. One full repeat fills the adaptive icon's safe zone.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
@@ -20,46 +23,42 @@
|
||||
android:pivotX="54.0"
|
||||
android:pivotY="54.0">
|
||||
<path android:fillColor="#0C0C0C" android:pathData="M-90.00,-90.00h288.00v288.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-90.00,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-63.75,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-26.25,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M0.00,-90.00h3.75v288.00h-3.75z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M7.50,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M45.00,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M71.25,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M108.75,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M135.00,-90.00h3.75v288.00h-3.75z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M142.50,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M180.00,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,-135.00h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-131.25h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-127.50h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-105.00h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-90.00h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-67.50h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-63.75h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-41.25h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-26.25h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-3.75h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,0.00h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,3.75h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,7.50h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,30.00h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,45.00h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,67.50h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,71.25h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,93.75h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,108.75h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,131.25h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,135.00h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,138.75h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,142.50h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,165.00h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,180.00h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,202.50h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,206.25h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,228.75h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,243.75h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,266.25h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-88.94,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-69.88,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M-36.00,-90.00h2.12v288.00h-2.12z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-16.94,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M2.12,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M36.00,-90.00h2.12v288.00h-2.12z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M55.06,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M74.12,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M108.00,-90.00h2.12v288.00h-2.12z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M127.06,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M146.12,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M180.00,-90.00h2.12v288.00h-2.12z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-105.88h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-88.94h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-72.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-69.88h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-52.94h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,-36.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-33.88h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-16.94h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,0.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,2.12h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,19.06h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,36.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,38.12h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,55.06h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,72.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,74.12h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,91.06h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,108.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,110.12h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,127.06h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,144.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,146.12h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,163.06h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,180.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,182.12h288.00v16.94h-288.00z" />
|
||||
</group>
|
||||
</vector>
|
||||
|
||||
@@ -2,13 +2,16 @@
|
||||
<!--
|
||||
A single square of the Wallace tartan, set on the bias.
|
||||
|
||||
Generated from the same sett as WallaceSett in Tartan.kt: a half-sett of
|
||||
gold 6, black 6, red 36, black 24, red 36, black 6, reflected about its
|
||||
pivots. Warp is drawn opaque, weft over it at half opacity, which is what
|
||||
gives the blended squares rather than a flat grid.
|
||||
Generated from the published threadcount K/4 R32 K32 Y/4 — the same numbers
|
||||
as WallaceSett in Tartan.kt. The slashes are pivots, so the half-sett
|
||||
reflects out to K4 R32 K32 Y4 K32 R32: the yellow overstripe runs down the
|
||||
centre of a wide black band, and the narrow black guard splits the red into
|
||||
pairs.
|
||||
|
||||
The paths run well past the viewport because the whole thing is rotated 45
|
||||
degrees; the overspill is what keeps the corners covered.
|
||||
Warp is opaque, weft laid over it at half opacity, which is what gives the
|
||||
blended squares rather than a flat grid. Paths run well past the viewport
|
||||
because the group is rotated 45 degrees; the overspill keeps the corners
|
||||
covered. One full repeat fills the adaptive icon's safe zone.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="48dp"
|
||||
@@ -20,46 +23,42 @@
|
||||
android:pivotX="54.0"
|
||||
android:pivotY="54.0">
|
||||
<path android:fillColor="#0C0C0C" android:pathData="M-90.00,-90.00h288.00v288.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-90.00,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-63.75,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-26.25,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M0.00,-90.00h3.75v288.00h-3.75z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M7.50,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M45.00,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M71.25,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M108.75,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M135.00,-90.00h3.75v288.00h-3.75z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M142.50,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M180.00,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,-135.00h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-131.25h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-127.50h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-105.00h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-90.00h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-67.50h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-63.75h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-41.25h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-26.25h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-3.75h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,0.00h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,3.75h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,7.50h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,30.00h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,45.00h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,67.50h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,71.25h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,93.75h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,108.75h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,131.25h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,135.00h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,138.75h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,142.50h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,165.00h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,180.00h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,202.50h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,206.25h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,228.75h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,243.75h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,266.25h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-88.94,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-69.88,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M-36.00,-90.00h2.12v288.00h-2.12z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-16.94,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M2.12,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M36.00,-90.00h2.12v288.00h-2.12z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M55.06,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M74.12,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M108.00,-90.00h2.12v288.00h-2.12z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M127.06,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M146.12,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M180.00,-90.00h2.12v288.00h-2.12z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-105.88h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-88.94h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-72.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-69.88h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-52.94h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,-36.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-33.88h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-16.94h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,0.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,2.12h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,19.06h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,36.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,38.12h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,55.06h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,72.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,74.12h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,91.06h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,108.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,110.12h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,127.06h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,144.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,146.12h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,163.06h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,180.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,182.12h288.00v16.94h-288.00z" />
|
||||
</group>
|
||||
</vector>
|
||||
|
||||
@@ -2,13 +2,16 @@
|
||||
<!--
|
||||
A single square of the Wallace tartan, set on the bias.
|
||||
|
||||
Generated from the same sett as WallaceSett in Tartan.kt: a half-sett of
|
||||
gold 6, black 6, red 36, black 24, red 36, black 6, reflected about its
|
||||
pivots. Warp is drawn opaque, weft over it at half opacity, which is what
|
||||
gives the blended squares rather than a flat grid.
|
||||
Generated from the published threadcount K/4 R32 K32 Y/4 — the same numbers
|
||||
as WallaceSett in Tartan.kt. The slashes are pivots, so the half-sett
|
||||
reflects out to K4 R32 K32 Y4 K32 R32: the yellow overstripe runs down the
|
||||
centre of a wide black band, and the narrow black guard splits the red into
|
||||
pairs.
|
||||
|
||||
The paths run well past the viewport because the whole thing is rotated 45
|
||||
degrees; the overspill is what keeps the corners covered.
|
||||
Warp is opaque, weft laid over it at half opacity, which is what gives the
|
||||
blended squares rather than a flat grid. Paths run well past the viewport
|
||||
because the group is rotated 45 degrees; the overspill keeps the corners
|
||||
covered. One full repeat fills the adaptive icon's safe zone.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="48dp"
|
||||
@@ -20,46 +23,42 @@
|
||||
android:pivotX="54.0"
|
||||
android:pivotY="54.0">
|
||||
<path android:fillColor="#0C0C0C" android:pathData="M-90.00,-90.00h288.00v288.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-90.00,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-63.75,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-26.25,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M0.00,-90.00h3.75v288.00h-3.75z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M7.50,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M45.00,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M71.25,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M108.75,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M135.00,-90.00h3.75v288.00h-3.75z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M142.50,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M180.00,-90.00h22.50v288.00h-22.50z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,-135.00h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-131.25h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-127.50h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-105.00h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-90.00h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-67.50h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-63.75h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-41.25h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-26.25h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-3.75h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,0.00h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,3.75h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,7.50h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,30.00h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,45.00h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,67.50h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,71.25h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,93.75h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,108.75h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,131.25h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,135.00h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,138.75h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,142.50h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,165.00h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,180.00h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,202.50h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,206.25h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,228.75h288.00v15.00h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,243.75h288.00v22.50h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,266.25h288.00v3.75h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-88.94,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-69.88,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M-36.00,-90.00h2.12v288.00h-2.12z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M-16.94,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M2.12,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M36.00,-90.00h2.12v288.00h-2.12z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M55.06,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M74.12,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M108.00,-90.00h2.12v288.00h-2.12z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M127.06,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#E01B24" android:pathData="M146.12,-90.00h16.94v288.00h-16.94z" />
|
||||
<path android:fillColor="#F2C518" android:pathData="M180.00,-90.00h2.12v288.00h-2.12z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-105.88h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-88.94h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-72.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-69.88h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-52.94h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,-36.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,-33.88h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,-16.94h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,0.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,2.12h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,19.06h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,36.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,38.12h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,55.06h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,72.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,74.12h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,91.06h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,108.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,110.12h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,127.06h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,144.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#E01B24" android:fillAlpha="0.5" android:pathData="M-90.00,146.12h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,163.06h288.00v16.94h-288.00z" />
|
||||
<path android:fillColor="#F2C518" android:fillAlpha="0.5" android:pathData="M-90.00,180.00h288.00v2.12h-288.00z" />
|
||||
<path android:fillColor="#0C0C0C" android:fillAlpha="0.5" android:pathData="M-90.00,182.12h288.00v16.94h-288.00z" />
|
||||
</group>
|
||||
</vector>
|
||||
|
||||
Reference in New Issue
Block a user