navigational plotting
I'm having trouble drawing a path depicting a vessel's movements. For example, from some starting point, go 123 miles on course 091°, thence 73 miles on course 346°, etc.
Drawing any single leg of the trip is no problem. I can make a straight line of a given length, then rotate it to the correct orientation. However, creating these legs individually and placing them end to end gives the diagram a klugey look. The corners don't have the perfect appearance of a path created by successive clicks with the pen tool.
I can get the diagram just right by first roughing out the path by eye, then using the Inkscape XML edit feature to modify the node coordinates. To get the correct numbers I perform vector math on a calculator. This is laborious and blunder-prone. Is there a better way?
On Tue, Sep 06, 2005 at 11:06:28AM -0700, Paul Hirose wrote:
I'm having trouble drawing a path depicting a vessel's movements. For example, from some starting point, go 123 miles on course 091??, thence 73 miles on course 346??, etc.
Drawing any single leg of the trip is no problem. I can make a straight line of a given length, then rotate it to the correct orientation. However, creating these legs individually and placing them end to end gives the diagram a klugey look. The corners don't have the perfect appearance of a path created by successive clicks with the pen tool.
I can get the diagram just right by first roughing out the path by eye, then using the Inkscape XML edit feature to modify the node coordinates. To get the correct numbers I perform vector math on a calculator. This is laborious and blunder-prone. Is there a better way?
Hmm, I'm having a little trouble picturing what you're striving to get, although it sounds pretty cool. :-) Could you post a screenshot or two showing what you've got, and what you'd like to get? Maybe there's an easy way to achieve it.
Keep in mind that Inkscape's technical drawing capabilities are a bit limited, so things like scaling, chamfers/rounding, etc. aren't available. However, there are usually some alternate tricks for getting similar results without too much difficulty.
Also, I suspect you may be able to improve your workflow considerably if by creating an extension program, if you know a scripting language like python or perl. If you need to draw these ship paths often, this could be well worth the time required.
Bryce
Paul Hirose wrote:
I'm having trouble drawing a path depicting a vessel's movements. For example, from some starting point, go 123 miles on course 091°, thence 73 miles on course 346°, etc.
Sounds like turtle geometry to me.
I can get the diagram just right by first roughing out the path by eye, then using the Inkscape XML edit feature to modify the node coordinates. To get the correct numbers I perform vector math on a calculator. This is laborious and blunder-prone. Is there a better way?
You could write an extension to process a file that describes the vessel movements and creates a new path tracing that path at a certain scale. If you know python it would be rather quick to create such an extension using the pturtle.py module in the extensions directory.
http://cvs.sourceforge.net/viewcvs.py/inkscape/inkscape/share/extensions/ptu...
Aaron Spike
Paul Hirose wrote:
I'm having trouble drawing a path depicting a vessel's movements. For example, from some starting point, go 123 miles on course 091°, thence 73 miles on course 346°, etc.
I realize you're asking a "How do I use Inkscape?" question, but I'm going to answer it another way. For drawing a map like that I'd probably recommend using GPS Visualizer. Probably the coolest SVG application that I've seen.
--Ted
Ted Gould wrote:
Paul Hirose wrote:
I'm having trouble drawing a path depicting a vessel's movements. For example, from some starting point, go 123 miles on course 091°, thence 73 miles on course 346°, etc.
I realize you're asking a "How do I use Inkscape?" question, but I'm going to answer it another way. For drawing a map like that I'd probably recommend using GPS Visualizer. Probably the coolest SVG application that I've seen.
--Ted
Paul
It seems to me the best approach would be to set up a simple spreadsheet with columns such as:
Distance Angle X-coord Y-coord
and with proper attention to the formulae, you would quickly end up with a list of sets of coordinates which you would then plot. I don't see any aids in Inkscape to do this and attempting to draw the coords from the little numbers at the bottom of the GUI that run with the cursor position would be more hit than miss.
Inkscape would give a great map when complete - you could add features to it at will - but I think it needs a separate bit of number crunching first. There is a fantastic range of land and land-use clip art at:
http://ian.umces.edu/index.html?http&&&ian.umces.edu/conceptuald...
and they are all vector format! You must have a look at that site.
Please let us know whet you end up doing.
Regards
Adam
Adam wrote,
It seems to me the best approach would be to set up a simple spreadsheet with columns such as:
Distance Angle X-coord Y-coord
and with proper attention to the formulae, you would quickly end up with a list of sets of coordinates which you would then plot. I don't see any aids in Inkscape to do this and attempting to draw the coords from the little numbers at the bottom of the GUI that run with the cursor position would be more hit than miss.
Yes. You could do this but it's just reinventing the wheel.
Inkscape would give a great map when complete - you could add features
It does, but needs a couple of areas addressed. Such as snapping to ends of plotted lines (apologies if this is present already :-)), such as getting up to speed on zooming in/out on a big map etc.
There is a fantastic range of land and land-use clip art at:
http://ian.umces.edu/index.html?http&&&ian.umces.edu/conceptuald...
and they are all vector format! You must have a look at that site.
That is a great site. Thank' s for drawing my attention to it.
Erik
Paul, I know your problem exactly. I survey caves as a hobby and have to plot the survey data in exactly the fashion you describe, before fleshing out the details of the cave. Sometimes there are dozens of survey legs to draw. I have often tried Inkscape for this purpose, especially earlier this year, but am always totally frustrated by it. I now use Xara and it works beautifully for this purpose, as well as being incredibly fast. The key here is to be able to snap onto the end of the first leg before laying out the second leg etcetera. Inkscape could not do this last time I looked whereas Xara can. There may be klunky workarounds but as you know when you have many legs to process this rapidly becomes unworkable. At the other end of the process Inkscape is good at detail in the cave maps but it becomes bogged down and dreadfully slow. I feel until some of the speed issues are addressed that I will simply not use it due to time constraints even though I would like to be able to.
By the way, there are many programs that have been developed to plot cave survey data. Some of these are free or effectively so. The best of the programs "Walls", uses a round tripping process to update the map, including the drawn detail, when incorrect legs are updated. This program outputs SVG but needs Illustrator 10 as well at present.
regards, Erik
----- Original Message ----- From: "Paul Hirose" <j4n3a-31309-rcvk4@...99...> To: "Inkscape list" inkscape-user@lists.sourceforge.net Sent: Wednesday, September 07, 2005 4:06 AM Subject: [Inkscape-user] navigational plotting
I'm having trouble drawing a path depicting a vessel's movements. For example, from some starting point, go 123 miles on course 091°, thence 73 miles on course 346°, etc.
Drawing any single leg of the trip is no problem. I can make a straight line of a given length, then rotate it to the correct orientation. However, creating these legs individually and placing them end to end gives the diagram a klugey look. The corners don't have the perfect appearance of a path created by successive clicks with the pen tool.
I can get the diagram just right by first roughing out the path by eye, then using the Inkscape XML edit feature to modify the node coordinates. To get the correct numbers I perform vector math on a calculator. This is laborious and blunder-prone. Is there a better way?
On 9/6/05, Erik <kaver@...45...> wrote:
The key here is to be able to snap onto the end of the first leg before laying out the second leg etcetera. Inkscape could not do this last time I looked
Can you describe in more detail what you are trying to do here? In particular I'm not sure why you need snapping for this. As I understand it, you just use the Pen tool, click at the end of the selected path (it displays an end marker that is highlighted on mouseover, so it's easy), then you click on a next point, and press Enter to finish. A new leg is thus added easily to the end of an existing path. What's wrong with this workflow?
What I, and I presume Paul want to do is plot surveys like the following: A simple example is
Point Point Distance (metres) Bearing (degrees) A B 60 7 B C 80 45 C D 85 133 D E 100 35 E F 27 345
We want to plot A->B and then B->C etc to the end of the series.
A->B Draw the leg vertically. How do I specify or read the length of the leg as I am drawing it? I can check and adjust it afterwards but it would help to have an indication as I am drawing? Once the leg length is correct I need to move the centre of rotation of the leg back to the start and snap to the node. Then rotate the leg to the correct compass bearing. If I cannot snap then how do I get accurately onto the start of the leg? Near enough is not good enough.
B->C Start second leg on end of first. With either of your suggestions, how do I specify leg length and then change angle to required bearing?
C->D etcetera.
Erik
On 9/7/05, Erik <kaver@...45...> wrote:
What I, and I presume Paul want to do is plot surveys like the following: A simple example is
Point Point Distance (metres) Bearing (degrees) A B 60 7 B C 80 45 C D 85 133 D E 100 35 E F 27 345
We want to plot A->B and then B->C etc to the end of the series.
A->B Draw the leg vertically. How do I specify or read the length of the leg as I am drawing it? I can check and adjust it afterwards but it would help to have an indication as I am drawing?
OK, I just committed something to help doing exactly this:
In Pen tool, while you are drawing a path, the statusbar displays the distance and angle of the current mouse point from the last created node of the path. This makes it easy to create a path from the given lengths and angles of linear segments.
So, to make a path from this table, you just switch to Shift+F6, click in the initial point, move mouse watching the statusbar until you get "distance 60, angle 7", click to create the second node, move mouse to get "distance 80, angle 45", click again, etc. If your angles are always multiples of e.g. 1 or 5 degrees, go to Inkscape Preferences, Steps tab, and select that value in "Rotation snaps", then in Pen tool move mouse with Ctrl pressed to snap the angle.
Please try out the latest CVS and let me know if this solves your problem.
On 9/6/05, Erik <kaver@...45...> wrote:
The key here is to be able to snap onto the end of the first leg before laying out the second leg etcetera.
Alternatively, in Node tool, just select the end node of a path, press Shift+D to duplicate that node, and drag (or nudge with arrows) the node away. Very easy. By doing Shift+D, some arrow keys, Shift+D, some arrow keys, etc. I can easily create any path out of linear segments.
On Tue, 2005-09-06 at 22:46 -0300, bulia byak wrote:
On 9/6/05, Erik <kaver@...45...> wrote:
The key here is to be able to snap onto the end of the first leg before laying out the second leg etcetera.
Alternatively, in Node tool, just select the end node of a path, press Shift+D to duplicate that node, and drag (or nudge with arrows) the node away. Very easy. By doing Shift+D, some arrow keys, Shift+D, some arrow keys, etc. I can easily create any path out of linear segments.
Yay! Very neat.
Is there any pattern to using shift+D instead of Ctrl+D? Ctrl+D is already used in the object context, so it would have been more discoverable/consistent if it was used in the node context as well, don't you think? Or do you have a use case where you need to be duplicating object when node editing?
It is usually close to impossible to change shortcuts once they have been implemented and people start using them.
thanks for another great time saver btw.
On 9/7/05, Jakub Steiner <jimmac@...446...> wrote:
Is there any pattern to using shift+D instead of Ctrl+D? Ctrl+D is already used in the object context, so it would have been more discoverable/consistent if it was used in the node context as well, don't you think? Or do you have a use case where you need to be duplicating object when node editing?
Yes, I think being able to duplicate the object while node-editing is very useful. For example when you have a bunch of paths that share end nodes but are different in the middle. You draw the first one, Ctrl+D, drag the middle away, Ctrl+D, drag the middle away, etc.
On Wed, 2005-09-07 at 14:30 -0300, bulia byak wrote:
On 9/7/05, Jakub Steiner <jimmac@...446...> wrote:
Is there any pattern to using shift+D instead of Ctrl+D? Ctrl+D is already used in the object context, so it would have been more discoverable/consistent if it was used in the node context as well, don't you think? Or do you have a use case where you need to be duplicating object when node editing?
Yes, I think being able to duplicate the object while node-editing is very useful. For example when you have a bunch of paths that share end nodes but are different in the middle. You draw the first one, Ctrl+D, drag the middle away, Ctrl+D, drag the middle away, etc.
Hi Bulia, I consider consistency a bit more important. The case you describe doesn't make it too obscure to simply change tools in the process ('S'<>'N') and have Ctrl+D do a duplicate depending on the context.
It is similar to using the same shortcuts to copy/paste text or images in a word processor.
cheers
Thanks to the many people who replied to my question.
I appreciate the suggestions to use a scripting language, spreadsheet, etc., but for my simple needs that would be like taking an 18-wheel truck to pick up a few groceries. All I need is a program to do an occasional simple diagram in SVG. It wouldn't necessarily be a plot of a ship's course. That was just an typical example. Basically, I need to do some light duty drafting. But I get the feeling that Inkscape is targeted more at artwork than technical illustration.
Erik wrote:
What I, and I presume Paul want to do is plot surveys like the following:
Point Point Distance (metres) Bearing (degrees) A B 60 7 B C 80 45 C D 85 133 D E 100 35
We want to plot A->B and then B->C etc to the end of the series.
That's the idea. What I have in mind: a virtual straightedge which can be snapped to a selected node, then rotated about that point to any desired orientation. Rotation can be done by eye, and also by inputting a numeric value. The 0 degree orientation can be vertical or horizontal at the user's option. In addition, the straightedge can be snapped to any straight line that contains the pivot node, then rotated relative to that direction.
The pen's movement is constrained to follow the straightedge. Or, the user can specify the start and end points of a line in terms of distance along the straightedge, the pivot node acting as the zero point of the distance scale.
All that may sound elaborate, but it's nothing more than what you can do with a protractor and ruler.
On 9/7/05, Paul Hirose <cfuhb-acdgw@...99...> wrote:
That's the idea. What I have in mind: a virtual straightedge which can be snapped to a selected node, then rotated about that point to any desired orientation.
So have you seen my yesterday's addition to the Pen tool? You can now do this while drawing by watching the statusbar for the desired length and angle. Does this solve your problem?
I will not have a chnace to test this for a few days. However, it sounds like a giant step in the right direction. Erik
So have you seen my yesterday's addition to the Pen tool? You can now do this while drawing by watching the statusbar for the desired length and angle. Does this solve your problem?
-- bulia byak Inkscape. Draw Freely. http://www.inkscape.org
Hi Bulia, I had a chance to look at this tonight. It partially solves my problem
The length measurement and use is spot on. However, the bearings (angles) do not operate as real compass bearings do.
1. Compass bearings start at 0 degrees and this starts dead vertical. Current zero degrees is horizontal.
2. Compass bearings increase in a clockwise direction. The current bearings increase in an anti-clockwise direction.
3. Compass bearings increase to 360 degrees. Current bearings increase only to 180 degrees.
The feel is good and natural and no other software I have used has this feature.
Fingers crossed, Erik
So have you seen my yesterday's addition to the Pen tool? You can now do this while drawing by watching the statusbar for the desired length and angle. Does this solve your problem?
-- bulia byak Inkscape. Draw Freely. http://www.inkscape.org
On 9/8/05, Erik <kaver@...45...> wrote:
- Compass bearings start at 0 degrees and this starts dead vertical.
- Compass bearings increase in a clockwise direction.
- Compass bearings increase to 360 degrees.
No problem, I added an option "Compass-like angle display" in Inkscape Preferences (Steps tab). When on, you get the angle displayed as compass bearings.
So far this option is only used by the Pen tool. If you know of any other place which could use this option, let me know. Note that various places which display relative rotation angles (such as when rotating an object in Selector) cannot use it, because for relative rotations (1) we do need negative angles and (2) the origin point is irrelevant. So this option should only apply to places that display an absolute angle of something.
On 9/8/05, bulia byak <buliabyak@...155...> wrote:
So far this option is only used by the Pen tool. If you know of any other place which could use this option, let me know.
Found one myself: handle angle display in Node tool.
Quoting bulia byak <buliabyak@...155...>:
On 9/8/05, Erik <kaver@...45...> wrote:
- Compass bearings increase in a clockwise direction.
Note that various places which display relative rotation angles (such as when rotating an object in Selector) cannot use it, because for relative rotations (1) we do need negative angles and (2) the origin point is irrelevant. So this option should only apply to places that display an absolute angle of something.
I don't know; it seems to me that a relative clockwise rotation ought to be displayed as positive (the opposite is currently the
[ case). Alternately, instead of showing angles as positive or negative, say "clockwise" or "anticlockwise". ]
Also, why make it a pref? Nearly all end users are going to be thinking in terms of angles in the "compass" sense.
I would like to minimize frivolous prefs because otherwise it just means more code that never gets tested.
-mental
On 9/8/05, mental@...32... <mental@...32...> wrote:
Also, why make it a pref? Nearly all end users are going to be thinking in terms of angles in the "compass" sense.
Why do you think so? In trigonometry, angles are measured exactly as we do (0 at east, counterclockwise, +/- range). That's what atan() returns, for example. So for me at least, this was much more intuitive than compass.
Quoting bulia byak <buliabyak@...155...>:
On 9/8/05, mental@...32... <mental@...32...> wrote:
Also, why make it a pref? Nearly all end users are going to be thinking in terms of angles in the "compass" sense.
Why do you think so? In trigonometry, angles are measured exactly as we do (0 at east, counterclockwise, +/- range). That's what atan() returns, for example. So for me at least, this was much more intuitive than compass.
I think you may have been spending too much time down here in programmer-land. ^_-
Seriously, ask a roomfull of graphic designers which makes more sense... I bet they will say 0 at north, positive angles clockwise.
[ they'd probably like +/- range, though ]
I don't think you would propose displaying angles as multiples of PI (e.g. 180 degrees = 1 pi), would you? Yet what atan() returns is radians, also proper to trigonometry.
-mental
mental@...32... writes:
Quoting bulia byak <buliabyak@...155...>:
On 9/8/05, mental@...32... <mental@...32...> wrote:
Also, why make it a pref? Nearly all end users are going to be thinking in terms of angles in the "compass" sense.
Why do you think so? In trigonometry, angles are measured exactly as we do (0 at east, counterclockwise, +/- range). That's what atan() returns, for example. So for me at least, this was much more intuitive than compass.
I think you may have been spending too much time down here in programmer-land. ^_-
Seriously, ask a roomfull of graphic designers which makes more sense... I bet they will say 0 at north, positive angles clockwise.
[ they'd probably like +/- range, though ]
I don't think you would propose displaying angles [in radians] would you? Yet what atan() returns is radians, also proper to trigonometry.
Speaking as a programmer and a user, *I* would prefer radians to degrees :-)
mental@...32... writes:
Quoting Trent Buck <trentbuck@...155...>:
Speaking as a programmer and a user, *I* would prefer radians to degrees :-)
I can see pi radians, but radians?
OK, what I really mean is that 2 units = one complete circle is a lot easier on the brain than 360 units = one complete circle. I guess 1 unit = one complete circle would be even easier...
Quoting Trent Buck <trentbuck@...155...>:
OK, what I really mean is that 2 units = one complete circle is a lot easier on the brain than 360 units = one complete circle. I guess 1 unit = one complete circle would be even easier...
You meant pi radians then. There are 2*pi ~= 6.283185 radians in a circle. Straight radians are not a human-friendly unit of measurement at all.
I still think degrees are a substantialy nicer unit for humans to work with casually/artistically since 360 is evenly divisible by 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 18, etc... without needing to resort to decimal approximations.
Let's say you're manually messing with a honeycombish pattern. Do you prefer thinking of:
- 120 degrees? _ - 0.66666666 pi radians?
- 4.188790204786... radians?
The Sumerians knew what they were doing, basically.
-mental
mental@...32... writes:
Quoting Trent Buck <trentbuck@...155...>:
Speaking as a programmer and a user, *I* would prefer radians to degrees :-)
I can see pi radians, but radians?
OK, what I really mean is that 2 units = one complete circle is a lot easier on the brain than 360 units = one complete circle. I guess 1 unit = one complete circle would be even easier...
Unless you pilot airplanes or boats :^)
Alan
On 9/8/05, mental@...32... <mental@...32...> wrote:
I think you may have been spending too much time down here in programmer-land. ^_-
Seriously, ask a roomfull of graphic designers which makes more sense... I bet they will say 0 at north, positive angles clockwise.
We should not limit ourselves to graphic designers. What about mathematic illustrations?
At http://en.wikipedia.org/wiki/Angle#Conventions_on_measurement, the mathematical convention is listed first, and is said to be "universally adopted in mathematical writing". The navigational convention is mentioned second.
So, I still disagree. Maybe we can do the navigational one the default, but the option is quite valid.
bulia byak wrote:
On 9/8/05, mental@...32... <mental@...32...> wrote:
I think you may have been spending too much time down here in programmer-land. ^_-
Seriously, ask a roomfull of graphic designers which makes more sense... I bet they will say 0 at north, positive angles clockwise.
We should not limit ourselves to graphic designers. What about mathematic illustrations?
From the Amiga UI Guide: "If 95% of your users want option A and 5%
option B, then make A the default but provide a preferences setting for B."
Quoting bulia byak <buliabyak@...155...>:
We should not limit ourselves to graphic designers. What about mathematic illustrations?
For the "mathematic" option, we should also probably be using pi radians, not degrees.
So, I still disagree. Maybe we can do the navigational one the default, but the option is quite valid.
I could live with that. It sounds like enough people would use the other option that it would get adequate testing.
-mental
Bulia, I've just set up Bobs latest Win32 version (0509081439) with compass-like angle display. Very very smooth. This makes me a happy little vegemite. I'll have to do some fiddling to see if any tweaking might be useful but so far so good. I love it.
Erik
----- Original Message ----- From: "bulia byak" <buliabyak@...155...> To: inkscape-user@lists.sourceforge.net Sent: Friday, September 09, 2005 3:34 AM Subject: Re: [Inkscape-user] navigational plotting
On 9/8/05, Erik <kaver@...45...> wrote:
- Compass bearings start at 0 degrees and this starts dead vertical.
- Compass bearings increase in a clockwise direction.
- Compass bearings increase to 360 degrees.
No problem, I added an option "Compass-like angle display" in Inkscape Preferences (Steps tab). When on, you get the angle displayed as compass bearings.
So far this option is only used by the Pen tool. If you know of any other place which could use this option, let me know. Note that various places which display relative rotation angles (such as when rotating an object in Selector) cannot use it, because for relative rotations (1) we do need negative angles and (2) the origin point is irrelevant. So this option should only apply to places that display an absolute angle of something.
-- bulia byak Inkscape. Draw Freely. http://www.inkscape.org
bulia byak wrote:
So have you seen my yesterday's addition to the Pen tool? You can now do this while drawing by watching the statusbar for the desired length and angle. Does this solve your problem?
I didn't know about the new feature. Is it in the first .zip file in this directory?
On 9/9/05, Paul Hirose <cfuhb-acdgw@...99...> wrote:
bulia byak wrote:
So have you seen my yesterday's addition to the Pen tool? You can now do this while drawing by watching the statusbar for the desired length and angle. Does this solve your problem?
I didn't know about the new feature. Is it in the first .zip file in this directory?
It should be there (though I haven't tested).
participants (11)
-
unknown@example.com
-
Aaron Digulla
-
Adam Pearson
-
Bryce Harrington
-
bulia byak
-
Erik
-
Jakub Steiner
-
Paul Hirose
-
R. Alan Monroe
-
Ted Gould
-
Trent Buck