I have to draw a triangle with an angle of 37 degrees, with the 2 sides forming that angle being 250m. I cannot figure out how to do this in ArcMap without hand-drawing it. This seems relatively basic enough that there should be a way to do it automatically. I am on ArcMap 10.3
Asked
Active
Viewed 1,378 times
1
-
Have you looked at COGO Tools for ArcGIS? – Barbarossa Mar 14 '16 at 18:21
-
I havent, but in googleing them it seems like they could possibly help. This isnt an option in the regular editor or even advance editing that i am missing? – tmanderson3 Mar 14 '16 at 19:36
-
Its a separate extension from the editor toolbar. However, it's not available with basic license. See here: http://gis.stackexchange.com/questions/107875/extension-for-cogo-for-arcgis-10-2 – Barbarossa Mar 14 '16 at 19:37
-
Not enough info in your question. Do you have original line/arm? Does second arm start from the end of 1st? – FelixIP Mar 14 '16 at 19:51
2 Answers
1
In ArcMap, create the first point of your triangle, then right click the mouse and select distance and direction. Since you know three pieces of the triangle (side lengths and angles) you can use the Law of Sines or the Law of Cosines to solve all the angles and side lengths. Better still use an online triangle solver.
GBG
- 9,737
- 1
- 15
- 44
0
The question as it is has countless number of solutions unless first side of triangle is defined.
If so and you have lines made of 2 points, this field calculator on Shape field. It will replace them by triangle with angle defined in expression box and 2nd 'arm' length equal length of original segment:
import math
pi=math.pi
def getTriAngle(shp,A):
L=shp.length; p1=shp.firstPoint; p2=shp.lastPoint
dX=p2.X-p1.X; dY=p2.Y-p1.Y
z=math.atan2(dY,dX)
a=float(A)/180*pi
nA=z-(pi-a)
nX=p2.X+L*math.cos(nA);nY=p2.Y+ L*math.sin(nA)
p3=arcpy.Point(nX,nY)
line=arcpy.Polyline(arcpy.Array([p1,p2,p3,p1]))
return line
===============================
getTriAngle( !Shape!,35)
FelixIP
- 22,922
- 3
- 29
- 61

