From d87364340751601b18769cbe4aab020376845c89 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 24 Aug 2023 11:09:28 -0400 Subject: [PATCH] path docs: Add another illustration --- docs/reference/gsk/gsk4.toml.in | 2 + docs/reference/gsk/images/curvature-dark.png | Bin 0 -> 11875 bytes docs/reference/gsk/images/curvature-light.png | Bin 0 -> 9046 bytes docs/reference/gsk/images/curvature.svg | 65 ++++++++++++++++++ gsk/gskpathpoint.c | 6 ++ 5 files changed, 73 insertions(+) create mode 100644 docs/reference/gsk/images/curvature-dark.png create mode 100644 docs/reference/gsk/images/curvature-light.png create mode 100644 docs/reference/gsk/images/curvature.svg diff --git a/docs/reference/gsk/gsk4.toml.in b/docs/reference/gsk/gsk4.toml.in index be0d478958..cbc6f79b44 100644 --- a/docs/reference/gsk/gsk4.toml.in +++ b/docs/reference/gsk/gsk4.toml.in @@ -43,6 +43,8 @@ content_images = [ "images/caps-light.png", "images/cubic-dark.png", "images/cubic-light.png", + "images/curvature-dark.png", + "images/curvature-light.png", "images/directions-dark.png", "images/directions-light.png", "images/fill-even-odd.png", diff --git a/docs/reference/gsk/images/curvature-dark.png b/docs/reference/gsk/images/curvature-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..2a3a98575178272d4fd13aecb30dc7bcfc469074 GIT binary patch literal 11875 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 hNd?o literal 0 HcmV?d00001 diff --git a/docs/reference/gsk/images/curvature.svg b/docs/reference/gsk/images/curvature.svg new file mode 100644 index 0000000000..3f744a8b27 --- /dev/null +++ b/docs/reference/gsk/images/curvature.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + diff --git a/gsk/gskpathpoint.c b/gsk/gskpathpoint.c index d1835743a1..9c620ba079 100644 --- a/gsk/gskpathpoint.c +++ b/gsk/gskpathpoint.c @@ -253,10 +253,16 @@ gsk_path_point_get_rotation (const GskPathPoint *point, * Calculates the curvature of the path at the point. * * Optionally, returns the center of the osculating circle as well. + * The curvature is the inverse of the radius of the osculating circle. * * If the curvature is infinite (at line segments), zero is returned, * and @center is not modified. * + * + * + * Osculating circle + * + * Returns: The curvature of the path at the given point * * Since: 4.14