lilypond-devel
[Top][All Lists]

## Re: Non-quadratic form of whiteout

 From: Thomas Morley Subject: Re: Non-quadratic form of whiteout Date: Sun, 16 Sep 2018 16:18:37 +0200

```2018-09-16 15:57 GMT+02:00 Urs Liska <address@hidden>:
>
>
> Am 16.09.2018 um 15:44 schrieb Kieren MacMillan:
>>
>> Hi Urs,
>>
>>> Am I getting something wrong here: why are you asking about intermediate
>>> points? Aren't we only interested in the whiteout around the outer edges?
>>
>> Consider the letter O, with 'outline #'(5 . 0). It’s easy to see that the
>> thickness on top (at the "N" compass point) is 5 units, and the thickness on
>> the right (at the "E" compass point). But we need to determine the thickness
>> at the "NW" (45º) compass point — that requires interpolation between 5 and
>> 0, right?
>
>
> OK, I see.
> But then you can't start from / think about an interpolation of the extreme
> points because that woudl require knowledge about the nature of the shape
> (what about the outline of an "F" or a note with a flag?). Instead one has
> to have some actual determination of the grob's outline.
>
> Without having dug into the issue before I could see two approaches:
> 1) see how the skyline detection works and go from there
> 2) use a scaled version of the original glyph as the whiteout area:
>
> Say you have a notehead with width 3 and height 1.5 (as measured by X-extent
> and Y-extent).
> 'outline #'(5 . 0) is desired.
> That means:
> - the total height of the whiteout is 1.5 (1.5 + 2x0)
> - the total width of the whiteout is 13 (3 + 2x5)
> - a note head vertically scaled by 1 (1.5/1.5) and horizontally scaled by
> 13/3 should have exactly the shape of the whiteout.
>
> Does that make sense?
> Would that work with non-solid shapes? If you have a letter "O" the whiteout
> would not be the scaled O but the area surrounded by the scaled O.
> What about the whiteout for non-contigiuos things like markup (consecutive
> letters)?
> How to determine the exact center of the shape to match the original and
> scaled shape?
>
> Urs
>
>
>> Cheers,
>> Kieren.

Hi,

the recent posts here are about the 'outline-style.
The current implementation of this creates slightly moved copies of
the original stencil, printed one above the other.
See the output of:

crcl = \markup \draw-circle #2 #0.1 ##f
greyBox = \markup \with-color #grey \filled-box #'(-4 . 4) #'(-4 . 4) #1

\markup \override #'(style . outline) {
\combine
\greyBox
\whiteout \crcl

\combine
\greyBox
\override #'(thickness . 15)
\whiteout \crcl
}

png attached.

The disadvantage of this approach is obvious as soon as thickness is increased.
A better approach would likely be to use a skyline-like approach as
Urs said. Though, I've no idea how to do so...

That said, I was more interested in opinions about generally dropping
the boolean for whiteout and the possibility to implement a
pair/pair-lst for rectangle whiteouts.
I don't see a skyline-like approach for 'outline coming soon, but
customizable rectangles are low hanging fruits.
Would be nice to have some agreement before work is started ;)

Cheers,
Harm
```

current-state.png
Description: PNG image