cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Need to share some code when posting a question or reply? Make sure to use the "Insert code sample" menu option. Learn more! X

How to find the min distance to find the distance between the red point and all the green points

YA_10963798
14-Alexandrite

How to find the min distance to find the distance between the red point and all the green points

Hi @Werner_E 

Do you mind showing me how to change this program for the min distance to find the distance between the red point and all the green points come before it regardless the min distance 

 

YA_10963798_3-1731307031131.png

 

like ...In the previous topic we found the nearest to the red point ...I need now to change it to find the distance between the red points ana all the greens come before it and the calculation of the distance should be separet for each red point ..that means if we consider to the third red point the target greens will be the ones between the second and the third points only without involving the previous segments 

 

YA_10963798_4-1731307171370.png

 

Thanks in advance 

 

ACCEPTED SOLUTION

Accepted Solutions
Werner_E
25-Diamond I
(To:YA_10963798)

I agree with Martin that for every new question you should provide the Prime sheet and also the necessary data file so that all members of the community have the opportunity to take part. The smaller and simplified the sheet, the better!

Furthermore you can't expect us to keep track which file was posted by whom in the past and keep all the files. Being lazy by nature I don't delete the files as regular as I maybe should and so your new files worked even though you did not provide the necessary Excel sheet. But the missing sheet sure would have hindered other members to try to help.

 

Concerning your new question I don't think that i can help. The function "connect2" you reference is a function which creates the data structure necessary to plot the line segments from every green point to the red LINE nearest to it - that way visually showing hat minimal distance.

The function is called "connect2" because it followed "connect", which would do similar but by connecting each green point and the nearest red point.

 

I don't see how your new question would relate to that function. Actually I don't understand what that question would be all about.

What should "find the distance between the red point and all the green points come before it regardless the min distance" mean?

How would "before" be defined?

As far we cycled through all green points to find the red line closest to it. Not you want to cycle through the few red points(!?) and find ... what?

Again, as you reference the function "connect2", I have no clue to what you may need.

 

In case you just want to create a list of all green points within a certain section, we could add the information, if the point is left or right of the red marker line

Werner_E_0-1731354015620.png

and use this information to select all points within a section

Werner_E_1-1731354055865.png

Example:

Werner_E_2-1731354082853.png

 

In the attached P10 file I got rid of all regions not relevant to the question. If you can reduce the sheet further, please do so before you re-up it again. Smaller sheets make life a lot easier!

 

 

View solution in original post

8 REPLIES 8

Hi,

if you are asking for a help, please upload your mcdx file.


Martin Hanák
Werner_E
25-Diamond I
(To:YA_10963798)

I agree with Martin that for every new question you should provide the Prime sheet and also the necessary data file so that all members of the community have the opportunity to take part. The smaller and simplified the sheet, the better!

Furthermore you can't expect us to keep track which file was posted by whom in the past and keep all the files. Being lazy by nature I don't delete the files as regular as I maybe should and so your new files worked even though you did not provide the necessary Excel sheet. But the missing sheet sure would have hindered other members to try to help.

 

Concerning your new question I don't think that i can help. The function "connect2" you reference is a function which creates the data structure necessary to plot the line segments from every green point to the red LINE nearest to it - that way visually showing hat minimal distance.

The function is called "connect2" because it followed "connect", which would do similar but by connecting each green point and the nearest red point.

 

I don't see how your new question would relate to that function. Actually I don't understand what that question would be all about.

What should "find the distance between the red point and all the green points come before it regardless the min distance" mean?

How would "before" be defined?

As far we cycled through all green points to find the red line closest to it. Not you want to cycle through the few red points(!?) and find ... what?

Again, as you reference the function "connect2", I have no clue to what you may need.

 

In case you just want to create a list of all green points within a certain section, we could add the information, if the point is left or right of the red marker line

Werner_E_0-1731354015620.png

and use this information to select all points within a section

Werner_E_1-1731354055865.png

Example:

Werner_E_2-1731354082853.png

 

In the attached P10 file I got rid of all regions not relevant to the question. If you can reduce the sheet further, please do so before you re-up it again. Smaller sheets make life a lot easier!

 

 

YA_10963798
14-Alexandrite
(To:Werner_E)

Hi Werner, 

Actually I tried to write this program depending on your previous solution>> to find the distance between markers and the previous green points 

YA_10963798_0-1731395327616.png

 

 

when I say before I mean example : distance between  marker 2 all greens(cpt) (which located in between marker 1 and marker 2 )

dist3 will be ( marker3 and all greens located in marker 2 and 3) 

 

Do you think what I wrote is correct? >>> I'm asking because I honestly don't know why I used (seg) I just follow your steps

also tried this one:

YA_10963798_0-1731408915236.png

 

 

Thank you for your above answer >> that was my next step >> you are always awesome ..and it wasn't me who posted as a new question .. 

YA_10963798
14-Alexandrite
(To:Werner_E)

I read the file and it is beyoned expectations ... this is incredibly genius .. thank you soooooooooooooo much 

Werner_E
25-Diamond I
(To:YA_10963798)

If I understand you correctly you already got what you have looked for?

So you don't really need the distances you write about but just wanted to be able to select all greens in-between  two markers?

 

Note that in the approach above I simply added the information in the data structure created by "nearestPoint2" if a point is to the left or to the right of its closest marker.

So if a point is between marker 2 and marker 3 it can be closest to marker 2 but because its left/right column says "L" I know that its between marker 2 and 3 and not between marker 1 and 2, But the distance in the mindist column still will be the distance to its closest marker which is marker 2 and the segment marker in the "seg" column still will say 2.  If you rather need the distance to marker 3 (the next marker, not the closest one)  in this case, the function "nearestPoint2" would have to be modified accordingly.

 

One way would beWerner_E_0-1731412796157.png

The NaN's are returned if there is no "next" red marker line. This is the case for the points a the left of the road.
Maybe the first in that series on NaN's ("seg" column) would better be replaced by the maximum marker number +1. This would make selecting them later easier.

 

 

YA_10963798
14-Alexandrite
(To:Werner_E)

So , the last one you sent will get  the distance between all the greens in region ( between marker 2 and marker 3) to marker 3  only regardless the nearest marker >> if so, this is exactly what I'm looking for. 

One more question >> how do you know that mathcad is not also calculating the distance before marker 2.. what is the expression?

thanks in advance 

Werner_E
25-Diamond I
(To:YA_10963798)


@YA_10963798 wrote:

So , the last one you sent will get  the distance between all the greens in region ( between marker 2 and marker 3) to marker 3  only regardless the nearest marker >> if so, this is exactly what I'm looking for. 

One more question >> how do you know that mathcad is not also calculating the distance before marker 2.. what is the expression?

thanks in advance 


The function dist2 returns an oriented distance, this means that the sign indicates on which side of the line the point lies.

In my first version I just used the absolute value of dist2 because we were looking for the nearest red line, regardless if it is to the left or to the right of the point. In the new version, only values with a certain sign are considered.

There was an error in the function I posted before as it should read dist>=0 and not dist<=0 if we only want to consider red lines to the left of the green point.

That way the numbering of the segments  now start with 1 (and not with 0 as before) and end with 17.

Segment 17 indicating points to the left of the last 16th marker - of course no distance is returned but rather a NaN for these points.

Werner_E_1-1731428428282.png

 

The slider to select the points in a certain segment at the end of the sheet was also modified. Formerly it ran from 0 to 16 whereas now it runs from 1 to 17.

Segment 9 now means the segment between marker #8 and marker #9.

Segment 1 are all points to the right of marker #1 and segment 17 all points to the left of marker #16.

Attention: I did not use input values and scripting when implementing the slider. It was a quick hack and the values 1 to 17 are just "hard coded" by editing the Properties of this component. If necessary it would be possible to make the limits (especially the upper one) dynamically changing according to the number of markers provided.

 

Prime 10 sheet attached

YA_10963798
14-Alexandrite
(To:Werner_E)

Ahh >> Now I got it ... Thank you so much for such thorough explanation 

Announcements

Top Tags