Grasshopper

algorithmic modeling for Rhino

Is there a components or a specific sequence of components that will let me calculate where 2 points meet at a specific angle. Like the opposite of a protractor, where u would start at a base point and then send a line along 0 and another along say 47 degrees. instead your starting i guess at the 2 points of an angles end that represent 0 degrees and 47 degrees and finding the start point of the angle you want? I know its probably a trig function, not so good at trig. Thanks.

Views: 2440

Replies to This Discussion

what exactly is going on here?

If you provide A,B,C and the angle d:

find the point(s) P  on C such that the angle PA.PB = d.

In this example there are 2 points P1 and P2, there can be a lot or 0 depending on curve.

 

Was that more clear ?

It doesn't seem to be quite right.  Here an angle input as 80 degrees is measuring 100.  I think it needs a trig tweak.

 

Chris

One of my flaws. Thanks for all the effort.

Yeah thats why I used a Cull component to remove the incorrect solutions. Thinking about a clean definition.


I like this one better, although it should return same results.

Attachments:

I guess you could optimize the definition even further  by computing only parts of the circles in the beginning. Region union/intersection tend to eat more memory (this is of course relevant if we were talking about handling multiple input data).


The following modification uses a different approach to creating the "iso-angle" curve (the results are the same):

Attachments:
Thanks Jacek, now that looks really perfect !
Wow thanks guys. You are all extremely helpful.

 

Calculate where 2 points [A & B] meet at a specific angle is just find the geometrical locus called arco capaz in Spanish, arc capable in French (l'isoptique d'un segment de droite) or isoptic [curve or locus] of a segment AB, in English. The set of all the points from which a segment, AB, is seen under a fixed given angle.

 

 

When you construct l'arc capable —by using compass— you obviously need to find the centre of this arc. This can be easily done in GH in many ways by using some trigonometry (e.g. see previous —great— solutions). Whole circles instead of arcs provide supplementary isoptics —β-isoptic and (180º-β)-isoptic—. Coherent normals let you work in any plane.

Or you could just construct β-isoptics of AB by using tangent at A (or B). I mean [Arc SED] component.

If you want the true β-isoptic —the set of all the points— you should use {+β, -β} degrees (2 sides; 2 solutions; 2 arcs), but slider in [-180, +180] degrees provides full range of signed solutions. Orthoptic is provided by ±90º. Notice that ±180º isoptic is just AB segment itself, and 0º isoptic should be the segment outside AB —(-, A] U [B, +)—. [Radians] component is avoidable.

More compact versions can be achieved by using [F3] component. You can choose among different expressions the one you like the most as long as performs counter clockwise rotation of vector AB, by 180-β degrees, around A; or equivalent. [Panel] is totally avoidable.

Solutions in XY plane —projection; z = 0—, no matter A or B, are easy too. Just be sure about the curve you want to find the intersection with —Curve; your wall— being contained in XY plane.

A few self-explanatory examples showing features.  

 

            1 & 5            1st ver. (Supplementary isoptics) (ArcCapableTrigNormals_def_Bel.png) 


            2 & 6             2nd ver. (SED) (ArcCapableSED_def_Bel.png)   


            3 & 7            3rd ver.  (SED + F3) (ArcCapableSEDF3_def_Bel.png)


            4 & 8            4th ver. (SED + F3, Projection) (ArcCapableSEDProjInt_def_Bel.png)

 

If you want to be compact, 7 could be your best choice. If you prefer orientation robustness, 5. Etcetera.

 


I hope these versions will help you to compact/visualize; let me know any feedback.

 


Calculate where 2 points
[A & B] meet at a specific angle is just
find the geometrical locus called arco capaz in
Spanish, arc capable in French (l'isoptique
d'un segment de droite
) or isoptic [curve or locus]
of a segment AB, in English. The set of all the points from which a segment,
AB, is seen under a fixed given angle.
Attachments:

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service