Вы находитесь на странице: 1из 28

IP, IP_4 Finds the intersection points of two 2D lines or polylines =IP(Line1, Line2, Optional Coordinate, Optional Point

no) "Line1" and "Line 2" are ranges listing the XY coordinates for the two lines If the ranges for Line1 or Line2 have more than 2 columns, the data in that range is assumed to be arrang "Coordinate" specifies the ordinate required, 1 = X, 2 = Y "Point No" specifies which intersection point is required If "Point No" is not provided IP returns an n x 2 array, where n is the number of intersection points. If "Coordinate" is not provided IP returns a 1 x 2 array if "Point no" is provided, or an n x 2 array if not. If "Line2" is a single point IP returns intersection points for a line through this point and parallel to the X ax =IP_4(Line1X, Line1Y, Line2X, Line2Y, Optional Coordinate, Optional Point no) For IP_4 the X and Y ranges for both lines are entered separately, allowing non-adjacent ranges to be use If the ranges for Line1 or Line2 have more than 1 column, the data in that range is assumed to be arrange

Line1 x 13 12.510565163 11.090169944 8.8778525229 3 3 -0.090169944 -2.877852523 -5.090169944 -6.510565163 -7 -6.510565163 -5.090169944 -2.877852523 -0.090169944 3 6.0901699437 8.8778525229 11.090169944 12.510565163 13 y 5 8.0901699437 10.877852523 13.090169944 17 15 14.510565163 13.090169944 10.877852523 8.0901699437 5 1.9098300563 -0.877852523 -3.090169944 -4.510565163 -5 -4 -3.090169944 -0.877852523 1.9098300563 5

20

15

10

Y-Axis

0 -10 -5

-5

Line2 (range name LineB) 13 6 -4 -5 -4 6 -7 16 5 16 Point No 1 2 X #VALUE! #VALUE! Y #VALUE! #VALUE! IP in Segment No. Line1 Line2 #VALUE! #VALUE! #VALUE! #VALUE!

-10

3 4 5 6 1 2 3 4 5 6

#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

#VALUE! #VALUE! #VALUE! #VALUE!

#VALUE! #VALUE! #VALUE! #VALUE!

INSIDE Finds if a specified point is inside a closed polyline =INSIDE(Polyline, Point) #VALUE! #VALUE!

IPLC Finds the intersection points of a 2D line and a circle =IPLC(Line, CircleXY ,Radius) X Y Line 4 3 100 6 Circle centre Radius dx,dy 3 8 96 8 m 3 0.03125 c 2.875

Intersection Points X IP1 #VALUE! IP2 #VALUE!

Y #VALUE! #VALUE!

Check distance from circle centre and line parameters Dist m c IP1 #VALUE! #VALUE! #VALUE! IP2 #VALUE! #VALUE! #VALUE!

IPCC Finds the intersection points of two circles =IPCC(Circle1XY, Radius1, Circle2XY, Radius2) X Y Radius Circle 1 3 8 Circle 2 5 7

5 3

Intersection Points X IP1 #VALUE! IP2 #VALUE!

Y #VALUE! #VALUE!

Check distance from circle centre and line parameters Circ1 Circ2 IP1 #VALUE! #VALUE! IP2 #VALUE! #VALUE!

IPSSS, IPSS IPSSS finds the 3D intersection points of three spheres IPSS finds the location and radius of the intersection circle of two spheres, and the polar coordinate angles of the line connecting the two cenrtres

=IPSSS(Sphere1XYZR, Sphere2XYZR, Sphere3XYZR) X Y Z 1 2 3 Sphere1 5 3 -1 Sphere2 2 4 9 Sphere3


Intersection points IP1 IP2

R 5 6 7

#VALUE! #VALUE!

#VALUE! #VALUE!

#VALUE! #VALUE!

Check distance from IP's to circle centres Sphere1 IP1 IP2 Sphere2 Sphere3

#VALUE! #VALUE!

#VALUE! #VALUE!

#VALUE! #VALUE!

=IPSS(Sphere1XYZR, Sphere2XYZR)
Distance from centre sphere1 to centre intersection circle, radius intersection circle, and angle of line connecting sphere centres in XY plane and perpendicular plane (radians) Dist; Theta1 Length Angle #VALUE! #VALUE! Radius; Theta2 #VALUE! #VALUE!

Check distance from circle to sphere centres Sphere1 #VALUE! Sphere2 #VALUE!

Check angle of line connecting centres

Theta1
#VALUE!

Theta2
#VALUE!

3D Centre and radius of a circle or circular arc ArcCenT2IP, ArcCenP3

ArcCenT2IP finds the centre and radius of an arc specified by 2 tangent points and the intersection

If the tangent points are not equidistant from the intersection point the further point is moved along the tange together with the point number (1 or 2) of the adjusted point. ArcCenP3 finds the centre and radius of an arc specified by any 3 points on the arc Point 2 must lie between Points 1 and 3 For both functions points are specified as a single row range with 2 or 3 columns

If either of the tangent points are adjusted the revised 3D coordinates are returned in the second row of the a

If Point 1 is specified with 2 coordiantes the problem is treated as 2D, and any Z values specified for the other

=ArcCenT2IP(TP1, TP2, IP)


Arc Centre and radius TP 1 TP 2 IP

X Y -1.414213562 1.4142135624 1.4142135624 1.4142135624 0 3 X #VALUE! #VALUE!


R

Z 1 3 2 Z #VALUE! #VALUE! R #VALUE! #VALUE!

Adjusted pt

Y #VALUE! #VALUE!

Check distance from tangent points to circle centre Point 1 Point 2 Adjusted Pt

#VALUE! #VALUE! #VALUE!

#VALUE!

=ArcCenP3(Point1, Point2, Point3 )


Arc Centre and radius Point 1 Point 2 Point 3

X Y -1.414213562 1.4142135624 0 2 1.4142135624 1 X #VALUE! Y #VALUE!

Z 1 2 3 Z #VALUE! R #VALUE!

Check distance from points to circle centre R Point 1 Point 2 Point 3

#VALUE! #VALUE! #VALUE!

Alternative solution posted on Eng-Tips Forum =ArcCenP3_2(Point1, Point2, Point3 )


Arc Centre and radius

X #VALUE!

Y #VALUE!

Z #VALUE!

R #VALUE!

is assumed to be arranged row-wise.

tersection points. an n x 2 array if not. nt and parallel to the X axis if XY = 1, or the Y axis if XY = 2

adjacent ranges to be used. s assumed to be arranged row-wise.

20

15

10

Column C

Column C Column C

0 -5 0 5 10 15

-5

-10

X-Axis

nts and the intersection point of the tangents is moved along the tangent line.

in the second row of the array output,

the arc

ues specified for the other two points are ignored.

Step by step, on spreadsheet solution:


1. Read the 3D coordinates for three points on the circle 2. Translate Point 2 and Point 3 for an origin at Point 1 3. Find polar coordinates of Point 3 4. Rotate Points 2 and 3 about the Z axis so that Point 3 is on the XZ plane 5. Rotate Points 2 and 3 about the Y axis so that Point 3 is on the X axis 6 Find angle of Point 2 from XY plane 7. Rotate Points 2 about the X axis so that Point 2 is on the XY plane 8. Find the XY coordinates of the mid-points of lines 1-2 and 3-2. 9 Find a second point on the perpendiculars through mid-points 10. Find the XY coordinates of the intersection of the perpendiculars. 11. Find the radius of the circle 12a. Reverse rotation about X axis 12b. Reverse rotation about Y axis 12c. Reverse rotation about Z axis 12d. Reverse translation
0.0000 1.4142 #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! X #VALUE!

Point 2
2.0000 0.5858 #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! Y #VALUE!

mn C

mn C

mn C

int 2
2.0000 1.0000 #VALUE! #VALUE! #VALUE! 1.4142 2.8284 #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! Z #VALUE! R #VALUE!

Point 3
1.0000 -0.4142 #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! 3.0000 2.0000 #VALUE! #VALUE! #VALUE! #VALUE!

PDIST Finds the perpendicular distance to the closest segment of a polyline =PDist(Line,Points) "Line" is a range listing the XY coordinates for the polyline "Points" is a range listing the XY coordinates for one or more points PDist returns an n x 3 array where n is the number of rows in the "points" range: Col1 = perpendicular distance from the point to the line. Cols 2 and 3 = X and Y components of the perpendicular distance. Enter as an array formula to return the whole array 15 Line x 13 12.510565 11.09017 8.8778525 3 3 -0.09017 -2.877853 -5.09017 -6.510565 -7 -6.510565 -5.09017 -2.877853 -0.09017 3 6 8.8778525 11.09017 12.510565 13 Points 4.8 4.5 -8 5 9 15 15 10 2 4 y 5 8.0901699 10.877853 12.9 13 14 14.510565 13.09017 10.877853 8.0901699 5 1.9098301 -0.877853 -3.09017 -4.510565 -3 0 -3.09017 -0.877853 1.9098301 5

10

Y-Axis

0 -10 -5 0 5

-5

-10

X-Axis

Distance DX DY #VALUE! #VALUE! #VALUE!

#VALUE! #VALUE! #VALUE! #VALUE!

#VALUE! #VALUE! #VALUE! #VALUE!

#VALUE! #VALUE! #VALUE! #VALUE!

15

Perpendicular Lines 1 4.8 15 #VALUE! #VALUE! 2 4.5 15 #VALUE! #VALUE! -8 10 #VALUE! #VALUE! 5 2 #VALUE! #VALUE! 9 4 #VALUE! #VALUE!

10

4
5

0 0 5 10 15

-5

-10

X-Axis

ular Lines

RtoP, PtoR Converts rectangular to polar coordinates and polar to rectangular =RtoP(Rectangular Coordinate range, Origin, Coordinate number) =PtoR(Polar Coordinate range, Origin, Coordinate number) Coordinate number 1 2 3 Rectangular X Y Z Polar R Theta1 Theta2 Theta1 = angle in XY plane Theta2 = angle in perpendicular plane Where an origin is given the origin is moved to the coordinates specified X 13 12.510565 11.09017 8.8778525 3 3 -0.09017 -2.877853 -5.09017 -6.510565 -7 -6.510565 -5.09017 -2.877853 -0.09017 3 6.0901699 8.8778525 11.09017 12.510565 13 Y 5 8.0901699 10.877853 13.09017 17 15 14.510565 13.09017 10.877853 8.0901699 5 1.9098301 -0.877853 -3.09017 -4.510565 -5 -4 -3.09017 -0.877853 1.9098301 5 R #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! theta1 #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! X #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

Rotate Rotates 2D or 3D rectangular axes about any axis Rotate(Rectangular Coordinate range, Rotation in radians, Axis, Optional Coordinate Number) Axis or Coordinate number 1 2 3 X Y Z Rotate coordinates in XY plane about Z axis: Rotation 0.7853981634 Axis 3 X Y X Y 1.000 1.000 #VALUE! #VALUE! -1.000 1.000 #VALUE! #VALUE! -1.000 -1.000 #VALUE! #VALUE!

-0.785398 3 X #VALUE! #VALUE! #VALUE!

1.000

-1.000

#VALUE!

#VALUE!

#VALUE!

Rotate 3D coordinates about 3 axes: Rotation 0.5235987756 Axis 1 X 1.000 -1.000 -1.000 1.000 1.000 -1.000 -1.000 1.000 Y 1.000 1.000 -1.000 -1.000 1.000 1.000 -1.000 -1.000 Z 1.000 1.000 1.000 1.000 -1.000 -1.000 -1.000 -1.000 X #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! Y

30

0.3490659 2 Z X #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

Y #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

dist #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

slope #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

oordinate Number)

Y #VALUE! #VALUE! #VALUE!

#VALUE!

20

0.5235988 3 Z X #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! Y

30

-0.523599 3 Z X #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! Y #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! Z #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

Y #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

-0.349066 2 X #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! Y #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! Z #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

-0.523599 1 X #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! Y #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! Z #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

interp interp2 loginterp loginterp2 quadinterp

#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

=interp(tablerange, value, column no) =interp2(tablerange, row value, column val) =loginterp(tablerange, value, column no) =loginterp2(tablerange, row value, column val) =quadinterp(tablerange, value, column no)

Linear interpolation 2 way linear interpolation Log interpolation 2 way log interpolation Quadratic interpolation

Age Days 1 3 10 30 100 365 1095 3650 10951 1.4


1.2 1 0.8 Y-Axis 0.6 0.4 0.2 0 1 10

50 0.19 0.3 0.48 0.75 0.97 1.16 1.26 1.29 1.29

K1 Shrinkage Arid 100 200 0.09 0.03 0.13 0.05 0.24 0.08 0.48 0.19 0.73 0.38 0.91 0.59 1.05 0.75 1.1 0.83 1.1 0.86

400 0 0.01 0.03 0.05 0.13 0.3 0.43 0.54 0.58

Age Column Thickness

100 X-Axis1000

10000

100000

r interpolation linear interpolation nterpolation log interpolation ratic interpolation

500 1 100

Disclaimer This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. A copy of the GNU General Public License may be obtained from: The Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

dougjenkins@interactiveds.com.au www.interactiveds.com.au

Copyright 2009 Interactive Design Services Pty Ltd. all rights reserved
Revision History Current Version Rev 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 Date 1-Jun-05 14-Dec-05 23-Dec-06 18-Jul-07 25-Aug-07 16-Sep-07 10-Aug-08 6-Jan-09 14-Feb-09 24-Feb-09 4/7/2009 7/16/2009 7/18/2009 7/19/2009 By DAJ DAJ DAJ DAJ DAJ DAJ DAJ DAJ DAJ DAJ DAJ DAJ DAJ DAJ 1.14 19-Jul-09 Description First release Interp modified for X values in descending order IP modified to use arrays in place of ranges IP modified to allow array output Quadinterp added IPLC, IPCC, IPSS, IPSSS added. INSIDE added, IPax separated from IP Sign of rotation about Y axis corrected in Rotate. PDist added PDist modified for duplicate points IP_4 function added IPSSS corrected for revised Rotate ArcCenT2IP and ArcCenP3 added Minor changes to code, no change to results

1.14

7/19/2009 DAJ

ArcCenP3_2 added

Вам также может понравиться