Skip to content

Commit

Permalink
Advanced digitizing - circle intersection (#9569)
Browse files Browse the repository at this point in the history
  • Loading branch information
DelazJ authored Jan 22, 2025
2 parents 3898c4c + 40ca5ba commit 253e438
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1768,6 +1768,21 @@ At the top of the :guilabel:`Digitizing panel`, you find the following buttons:
(more at :ref:`parallel_or_perpendicular`)
* |cadPerpendicular| :sup:`Perpendicular` to draw a line perpendicular to an
existing one (more at :ref:`parallel_or_perpendicular`)
* |extractVertices| :sup:`Construction Tools` provides a couple of options that
constrain the vertices placement based on extrapolated coordinates of
existing elements:

* |unchecked| :guilabel:`Line Extension`: hover over a segment and you get
a purple dotted line extending the segment across the map canvas.
You can snap the vertex anywhere on this virtual line.
* |unchecked| :guilabel:`X/Y Point`: hover over a vertex and you get
a purple dotted line along its X or Y coordinate, across the map canvas.
You can snap the vertex anywhere on this virtual line.
It is even possible to hover over two different vertices, generating virtual
coordinate lines for both, and snap to their intersection.
* |circlesIntersection| :sup:`2-circle Point Intersection`: allows you to
digitize a point or vertex at the intersection of two circles.
(more at :ref:`circle_intersection`).
* |settings| :sup:`Snap to common angles`: when moving the cursor,
displays a virtual line that you can snap to to add the next vertex.
The snapping line is defined by the last added vertex
Expand Down Expand Up @@ -1798,18 +1813,6 @@ At the top of the :guilabel:`Digitizing panel`, you find the following buttons:
* :guilabel:`Show bearing/azimuth`
* :guilabel:`Show common snapping angle`

* |extractVertices| :sup:`Construction Tools` provides a couple of options that
constrain the vertices placement based on extrapolated coordinates of
existing elements:

* |unchecked| :guilabel:`Line Extension`: hover over a segment and you get
a purple dotted line extending the segment across the map canvas.
You can snap the vertex anywhere on this virtual line.
* |unchecked| :guilabel:`X/Y Point`: hover over a vertex and you get
a purple dotted line along its X or Y coordinate, across the map canvas.
You can snap the vertex anywhere on this virtual line.
It is even possible to hover over two different vertices, generating virtual
coordinate lines for both, and snap to their intersection.

Below the toolbar, you will find a number of text boxes whose value reflects
by default the position or movement of the cursor in the map canvas.
Expand Down Expand Up @@ -2004,6 +2007,28 @@ These two tools just find the right angle of the perpendicular and
parallel angle and lock this parameter during your editing.
Unlock the angle parameter to cancel their use in the middle of the process.

.. _circle_intersection:

2-circle point intersection
---------------------------

To add a vertex at the intersection of two circles, follow these steps:

#. Click the |circlesIntersection| :sup:`2-circle Point Intersection` icon.
#. A dialog will open where you can define the parameters for
:guilabel:`Circle #1` and :guilabel:`Circle #2`.
#. Click on the map canvas, and the tool will automatically calculate the
:guilabel:`X` and :guilabel:`Y` coordinates for the centers of both circles.
#. Enter the distance :guilabel:`d` for each circle.
#. The tool will calculate and display the two intersection points of the circles.
#. Click one of the intersection points to add the new vertex.

.. figure:: img/circles_intersection.png
:align: center

2-circle Point Intersection


.. _construction_mode:

Construction mode
Expand Down Expand Up @@ -2159,6 +2184,8 @@ To edit features in-place:
:width: 1.5em
.. |circleCenterPoint| image:: /static/common/mActionCircleCenterPoint.png
:width: 1.5em
.. |circlesIntersection| image:: /static/common/circlesintersection.png
:width: 1.5em
.. |circularStringRadius| image:: /static/common/mActionCircularStringRadius.png
:width: 1.5em
.. |dataDefine| image:: /static/common/mIconDataDefine.png
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/common/circlesintersection.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions substitutions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,8 @@
:width: 1.5em
.. |circleCenterPoint| image:: /static/common/mActionCircleCenterPoint.png
:width: 1.5em
.. |circlesIntersection| image:: /static/common/circlesintersection.png
:width: 1.5em
.. |circularStringCurvePoint| image:: /static/common/mActionCircularStringCurvePoint.png
:width: 1.5em
.. |circularStringRadius| image:: /static/common/mActionCircularStringRadius.png
Expand Down

0 comments on commit 253e438

Please sign in to comment.