← Prev in month ← Prev in thread
Next in thread → Next in month →

Proposal: regular polygons

From
David Faure <>
Date
2004-07-14T21:22:31+00:00
ID
Thread
Proposal: regular polygons
Drawing and presentation applications allow users to insert polygons (any number of
connected lines), but might also want to model regular polygons separately, so that
those are assured to always remain regular.

In addition to normal convex regular polygons, simply defined by a number of edges
(equal to the number of corners), this proposal also includes support for 
regular concave polygons, star-shaped, as in the attached screenshot.
Such polygons are defined by a number of corners, and a "sharpness" percentage.
If set to 100% the inwards-going edges reach the center of the polygon.
At 50% they are located on a circle of radius half the radius of the polygon, etc.

(To define the general case one could say the additional corners are located on a 
circle whose radius is polygonradius * (100-sharpness) / 100)

RelaxNG schema:

Adding <ref name="draw-regular-polygon"/> to the "shape" define.

<define name="draw-regular-polygon">
    <element name="draw:regular-polygon">
        <optional>
            <attribute name="draw:concave">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:corners">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:sharpness">
                <ref name="percent"/>
            </attribute>
        </optional>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>


-- 
David Faure, , sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).
← Prev in month ← Prev in thread
Next in thread → Next in month →