Giter Site home page Giter Site logo

Comments (6)

yzrmn avatar yzrmn commented on June 5, 2024

I suspect you are talking about BLStrokeOptionsCore, right? Strokes are drawn half-width to both sides. E.g. if you have width set to 1 it will draw 0.5 to the "left" of the path and 0.5 to the "right".
Currently, there are no other modes to change this behavior. But I think it would be quite easy to do something like 0.2 to the left and 0.8 to the right. However, this might be an issue of how to specify it properly (API design)...

from blend2d.

Wiladams avatar Wiladams commented on June 5, 2024

https://docs.microsoft.com/en-us/windows/desktop/gdiplus/-gdiplus-setting-pen-width-and-alignment-use

Basically pen alignment. Three options; inset, centered, outside. Dont need floating control, just these three. It will make ui precision possible.

from blend2d.

yzrmn avatar yzrmn commented on June 5, 2024

Well, it's not as easy as that. SVG had the stroke-alignment property in previous drafts which reflects the settings of GDI+ pens. According to this there are issues for both open and closed paths. The property is likely removed from SVG 2 because of those.

It would be much easier to just specify left and right widths and not deal with inside/outside orientation. At least up until SVG agrees on how to do it.

from blend2d.

kobalicek avatar kobalicek commented on June 5, 2024

Yes that's true, I think Center/Left/Right options would make sense, but Inset/Outset would be complicated without having path-boolean implemented as these rely on fill area.

from blend2d.

Wiladams avatar Wiladams commented on June 5, 2024

I'll admit I've oversimplified. simple enclosed shapes have an easier 'inside'-'outside'. Generalized polygons at least have winding order, where you could be using left and right, but may run into Klein bottle problems. If 'left' and 'right' have an easier time of establishment, then maybe that's the way to go.

For my purposes, it's going to be rect, roundrect that I'm most concerned with, and can easily compensate for by readjusting coordinates, but a generalized solution would be great. A 'correct' solution would be even greater as it will make logical sense and have fewer hidden corner bugs.

from blend2d.

Wiladams avatar Wiladams commented on June 5, 2024

I'll close this for now and see if path Booleans change the conversation in the future. It seems the answer for the forseeable future will be to mind my strokes. Very challenging with complex paths, but easier for the ones I'm likely to need in the near term.

from blend2d.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.