Sei sulla pagina 1di 46

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 arranged row-wise.
"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 axis if XY = 1, or the Y
=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 used.
If the ranges for Line1 or Line2 have more than 1 column, the data in that range is assumed to be arranged row-wise.

Line1 20
x y
13 5
12.51056516295 8.090169943749 15
11.09016994375 10.87785252292
8.877852522925 13.09016994375
3 17 Y-Axis
10
3 15
-0.090169943749 14.51056516295
-2.877852522925 13.09016994375 5
-5.090169943749 10.87785252292
-6.510565162952 8.090169943749
-7 5
0
-6.510565162952 1.909830056251 -10 -5 0
-5.090169943749 -0.877852522925
-2.877852522925 -3.090169943749
-5
-0.090169943749 -4.510565162952
3 -5
6.090169943749 -4
8.877852522925 -3.090169943749 -10 X-Axis
11.09016994375 -0.877852522925
12.51056516295 1.909830056251
13 5

Line2 (range name LineB)


13 6
-4 -5
-4 6
-7 16
5 16
IP in Segment No.
Point No X Y Line1 Line2
1 #VALUE! #VALUE! #VALUE! #VALUE!
2 #VALUE! #VALUE! #VALUE! #VALUE!
3 #VALUE! #VALUE! #VALUE! #VALUE!
4 #VALUE! #VALUE! #VALUE! #VALUE!
5 #VALUE! #VALUE! #VALUE! #VALUE!
6 #VALUE! #VALUE! #VALUE! #VALUE!

1 #VALUE! #VALUE!
2 #VALUE! #VALUE!
3 #VALUE! #VALUE!
4 #VALUE! #VALUE!
5 #VALUE! #VALUE!
6 #VALUE! #VALUE!

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

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

#VALUE! #VALUE!
be arranged row-wise.

to the X axis if XY = 1, or the Y axis if XY = 2

to be used.
e arranged row-wise.

20

15

10

Column
C
5 Column
C

0
0 5 10 15

-5

-10 X-Axis
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 3 8
Radius 8
m c
dx,dy 96 3 0.03125 2.875

Intersection Points
X Y
IP1 #VALUE! #VALUE!
IP2 #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 5
Circle 2 5 7 3

Intersection Points
X Y
IP1 #VALUE! #VALUE!
IP2 #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 R
Sphere1 1 2 3 5
Sphere2 5 3 -1 6
Sphere3 2 4 9 7

Intersection points
IP1 #VALUE! #VALUE! #VALUE!
IP2 #VALUE! #VALUE! #VALUE!

Check distance from IP's to circle centres


Sphere1 Sphere2 Sphere3
IP1 #VALUE! #VALUE! #VALUE!
IP2 #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 Radius; Theta2
Length #VALUE! #VALUE!
Angle #VALUE! #VALUE!

Check distance from circle to sphere centres


Sphere1 Sphere2
#VALUE! #VALUE!

Check angle of line connecting centres


Theta1 Theta2
#VALUE! #VALUE!

Four functions to find the 3D Centre and radius of a circle or circular arc
ArcCenP3, ArcCenT2IP, ArcCenTP, ArcCenRP,
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
ArcCenT2IP finds the centre and radius of an arc specified by 2 tangent points and the intersection point of the tangents
If the tangent points are not equidistant from the intersection point the further point is moved along the tangent line.
If either of the tangent points are adjusted the revised 3D coordinates are returned in the second row of the array outpu
together with the point number (1 or 2) of the adjusted point.
ArcCenTP finds the centre and radius of an arc specified by 1 tangent point, 1 other point on the tangent line, and 1 othe
ArcCenRP finds the centre and radius of an arc specified by 1 point on the circle, 1 other point on a radial line through th

For all four functions points are specified as a single row range with 2 or 3 columns
If Point 1 is specified with 2 coordinates the problem is treated as 2D, and any Z values specified for the other two points
If Point 1 is specified with 3 coordinates the other two points must also be specified as a 3 column range.
=ArcCenP3(Point1, Point2, Point3 )

X Y Z
Point 1 1 2 3
Point 2 4 3 5
Point 3 8 5 6

X Y Z R
#VALUE! #VALUE! #VALUE! #VALUE!

Check distance from points to circle centre


R
Point 1 #VALUE!
Point 2 #VALUE!
Point 3 #VALUE!

=ArcCenT2IP(TP1, TP2, IP)

X Y Z
TP 1 1 2 3
TP 2 8 5 6
IP 4.219 2.781 5.875
0
X Y Z R
#VALUE! #VALUE! #VALUE! #VALUE!
Adjusted pt #VALUE! #VALUE! #VALUE! #VALUE!
Check distance from tangent points to circle centre
R
Point 1 #VALUE!
Point 2 #VALUE!
Adjusted Pt #VALUE! #VALUE!

=ArcCenTP(TP1, TP2, Pt2)

X Y Z
TP1 #VALUE! #VALUE! #VALUE!
TP2 #VALUE! #VALUE! #VALUE!
Pt2 8 5 6
0
X Y Z R
#VALUE! #VALUE! #VALUE! #VALUE!

Check distance from tangent points to circle centre


R
TP1 #VALUE!
Pt2 #VALUE!

=ArcCenRP(Pt1, RP1, Pt2)

X Y Z
Pt1 #VALUE! #VALUE! #VALUE!
RP1 #VALUE! #VALUE! #VALUE!
Pt2 8 5 6
0
X Y Z R
#VALUE! #VALUE! #VALUE! #VALUE!

Check distance from tangent points to circle centre


R
TP1 #VALUE!
Pt2 #VALUE! D
B
E
C
Procedure: A A
From input coordinates find:
Direction cosines of AB O
Direction cosines of AC
Cos BAC (from Cosine Rule)
Sin BAC (Case 1 and 3)
Calculate R:
Case 1: AE / Sin BAC Case 1, Three Case 2, Two tangen
Case 2: AD / Cos BAC points , ArcCenP3 and IP, ArcCenT2IP
Case 3: AD / Sin BAC
Case 4: AD / Cos BAC
Find direction cosines of line parallel to line from a
known point to centre:
Case 1: DC
Case 2: BD
Case 3: DC
Case 4: AB
Project from known point to circle centre:
Case 1: Point E, mid point of AB
Case 2: Point D, mid point of AC
Case 3: Point A
Case 4: Point A
section point of the tangents
ved along the tangent line.
econd row of the array output,

n the tangent line, and 1 other point on the circle


int on a radial line through that point, and 1 other point on the circle

ified for the other two points are ignored.


olumn range.
=ArcCenP3(Point1, Point2, Point3 )
Chord components
DX DY DZ L
AB 3 1 2 3.7416573868
BC 4 2 1 4.582575695
AC 7 3 3 8.1853527719
Direction Cosines
i j k
AB 0.801783725737273 0.267261241912424 0.53452248382485
AC 0.855186110494136 0.366508333068916 0.36650833306892

cosBAC 0.979534722672509
AD 8.01783725737273
CD 1.64750894209583 1.64750894209583
D 7.42857142857143 4.14285714285714 7.28571428571429
Direction Cosines
i j k
CD 0.346843987809647 0.520265981714472 -0.7803989725717

sinBAC 0.201275252027892
R 11.3838528303539

E 1.87082869338697 11.2290741053373 0
Cen 6.39473684210525 8.34210526315788 -4.7631578947368
B

C C C
D D
A A
B
O O O

Case 2, Two tangent points Case 3, Tangent Line Case 4, Radial Line and
and IP, ArcCenT2IP and one other point, one other point,
ArcCenTP ArcCenRP
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 y
13 5
12.510565 8.0901699
11.09017 10.877853
8.8778525 12.9 10
3 13
3 14
-0.09017 14.510565
Y-Axis

-2.877853 13.09017
-5.09017 10.877853 5
-6.510565 8.0901699
-7 5
-6.510565 1.9098301
-5.09017 -0.877853
-2.877853 -3.09017
-0.09017 -4.510565 0
3 -3 -10 -5 0 5
6 0
8.8778525 -3.09017
11.09017 -0.877853
12.510565 1.9098301 -5
13 5

Points
4.8 15
4.5 15
-8 10 -10
X-Axis
5 2
9 4

Distance DX DY
#VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
Perpendicular Lines
15 1 4.8 15
#VALUE! #VALUE!

2 4.5 15
#VALUE! #VALUE!

10 3 -8 10
#VALUE! #VALUE!

4 5 2
#VALUE! #VALUE!
5
5 9 4
#VALUE! #VALUE!

0
0 5 10 15

-5

-10
X-Axis
lar Lines
MaxDIST
Finds the maximum distance between any two points
=MaxDist(XRange, Yrange)

MaxDist returns an 1 x 3 array:


Col1 = maximum distance between any two points in the list.
Cols 2 and 3 = Row numbers of the two points

Enter as an array formula to return the whole array

Line
x y Max Dist Row 1 Row 2
13 5 #VALUE! #VALUE! #VALUE!
12.510565 8.1923
11.09017 10.877
8.8778525 12.9
3 13
3 14
-0.09017 14.510565
-2.877853 13.09017
-5.09017 10.877853
-6.510565 8.0901699
-7 5
-6.510565 1.9098301
-5.09017 -0.877853
-2.877853 -3.09017
-0.09017 -4.510565
3 -3
6 0
8.8778525 -3.09017
11.09017 -0.877853
12.510565 1.9098301
13 5
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 Y R theta1
13 5 #VALUE! #VALUE!
12.510565 8.0901699437 #VALUE! #VALUE!
11.09017 10.877852523 #VALUE! #VALUE!
8.8778525 13.090169944 #VALUE! #VALUE!
3 17 #VALUE! #VALUE!
3 15 #VALUE! #VALUE!
-0.09017 14.510565163 #VALUE! #VALUE!
-2.877853 13.090169944 #VALUE! #VALUE!
-5.09017 10.877852523 #VALUE! #VALUE!
-6.510565 8.0901699437 #VALUE! #VALUE!
-7 5 #VALUE! #VALUE!
-6.510565 1.9098300563 #VALUE! #VALUE!
-5.09017 -0.877852523 #VALUE! #VALUE!
-2.877853 -3.090169944 #VALUE! #VALUE!
-0.09017 -4.510565163 #VALUE! #VALUE!
3 -5 #VALUE! #VALUE!
6.0901699 -4 #VALUE! #VALUE!
8.8778525 -3.090169944 #VALUE! #VALUE!
11.09017 -0.877852523 #VALUE! #VALUE!
12.510565 1.9098300563 #VALUE! #VALUE!
13 5 #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!
1.000 -1.000 #VALUE! #VALUE!

Rotate 3D coordinates about 3 axes:


Rotation 0.5235987756 30
Axis 1

X Y Z X Y Z
1.000 1.000 1.000 #VALUE! #VALUE! #VALUE!
-1.000 1.000 1.000 #VALUE! #VALUE! #VALUE!
-1.000 -1.000 1.000 #VALUE! #VALUE! #VALUE!
1.000 -1.000 1.000 #VALUE! #VALUE! #VALUE!
1.000 1.000 -1.000 #VALUE! #VALUE! #VALUE!
-1.000 1.000 -1.000 #VALUE! #VALUE! #VALUE!
-1.000 -1.000 -1.000 #VALUE! #VALUE! #VALUE!
1.000 -1.000 -1.000 #VALUE! #VALUE! #VALUE!
X Y dist 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! #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! #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!

ordinate Number)

-0.7853982
3
X Y
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!

0.3490659 20 0.5235988 30 -0.523599


2 3 3

X Y Z X Y 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! #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!
-0.349066 -0.523599
2 1

Y Z X Y Z X 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! #VALUE!
#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
Z
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
Find the intersection point of 2 lines in 3D space

IP3D(Line1XYZ, Line2XYZ)
Intersection point of 2 line segments specified by XYZ coordinates of ends
Line1XYZ 2x3 range with coordinates of line1
Line2XYZ 2x3 range with coordinates of line2

Example
Enter points in the XY plane, then rotate both lines to generate intersecting lines
X Y Z X Y
End 1 -1.000 -2.000 0.000 -1.000 3.000
End 2 3.000 1.000 0.000 2.000 -2.000

Rotate 0.5 radians abo 2

Line 1 X Y Z Line 2 X
A #VALUE! #VALUE! #VALUE! C #VALUE!
B #VALUE! #VALUE! #VALUE! D #VALUE!

Method 1
IP3D Function:
X Y Z
#VALUE! #VALUE! #VALUE!

Method 2
1. Find IP of lines projected onto each plane through the origin using IP function
X Y Z
XY Plane: #VALUE! #VALUE!
XZ Plane #VALUE! #VALUE!
YZ Plane #VALUE! #VALUE!

Two IP's found? 0 0 0


IP's equal?
Lines intersect? 1
X Y Z
Intersection point #VALUE! #VALUE! #VALUE!

Method 3
1. Find IP of lines projected onto each plane through the origin using spreadsheet calc
m1 c1 m2 c2 X Y
XY Plane: #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
XZ Plane #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
YZ Plane #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

Two IP's found? 0 0


IP's equal?
Lines intersect? 1
X Y
Intersection point #VALUE! #VALUE!
IP within segment 1? #VALUE!
IP within segment 2? #VALUE!
12.000
XY Plane
10.000

Z 8.000

0.000
Line1
0.000 6.000
Line2

4.000

2.000

Y Z 0.000
#VALUE! #VALUE! 0.800 1.000 1.200 1.400 1.600 1.800 2.000 2.200
#VALUE! #VALUE!
12.000
XZ Plane
10.000

8.000

Line1
6.000
Line2

4.000

2.000

0.000
0.800 1.000 1.200 1.400 1.600 1.800 2.000 2.200

12.000
YZ Plane
10.000

8.000
Z
Line1
6.000
Line2

4.000
8.000

Line1
6.000
#VALUE! Line2

#VALUE!
4.000

0
2.000

Z 0.000
0.800 1.000 1.200 1.400 1.600 1.800 2.000 2.200
#VALUE!
Line1
Line2

2.200

Line1
Line2

2.200

Line1
Line2
Line1
Line2

2.200
Intersection of Planes and Related Functions

Example
Enter three points to define a plane, then rotate planes through different angles to generate intersecting planes
X Y Z
A -1.000 6.000 2.000
B -2.000 -5.000 3.000
C 5.000 -2.000 -1.000

Rotation 1 0.5 radians about axis no 2


Rotation 2 -0.25 radians about axis no 3

PDist3D(PlaneXYZ, PointXYZ, Out)


Perpendicular distance of a point from a plane
PlaneXYZ 3x3 range with coordinates of 3 non-colinear points in the plane
PointXYZ 1x3 range with coordinates of point
Out Optional output index:
Out = 1: Return perpendicular distance from point to plane
Out = 2: Return coordinates of perpendicular point on plane
Out > 2: Return both in 2 x 3 array

Plane X Y Z
A #VALUE! #VALUE! #VALUE!
B #VALUE! #VALUE! #VALUE!
C #VALUE! #VALUE! #VALUE!

Point
Distance #VALUE! #VALUE! #VALUE!
Perp. Point #VALUE! #VALUE! #VALUE!
Check dista #VALUE!

PlaneCoeff(PlaneXYZ)
Coefficients, a, b, c, d, of a plane defined by 3 points; where ax + by + cz +d = 0
PlaneXYZ 3x3 range with coordinates of 3 non-colinear points in the plane

Plane X Y Z
A #VALUE! #VALUE! #VALUE!
B #VALUE! #VALUE! #VALUE!
C #VALUE! #VALUE! #VALUE!
a b c d
Coefficients #VALUE! #VALUE! #VALUE! #VALUE!

Check #VALUE! #VALUE! #VALUE! #VALUE!


#VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE! #VALUE!
IPPlaneLine(PlaneXYZ, LineXYZ)
Intersection point of a line and a plane
PlaneXYZ 3x3 range with coordinates of 3 non-colinear points in the plane
LineXYZ 2x3 range with coordinates of line ends

Line X Y Z
A 2.000 2.000 2.000
B -2.000 0.000 0.000

IP #VALUE! #VALUE! #VALUE!

IPPlanePlane(Plane1XYZ, Plane2XYZ)
Intersection line of two planes
Plane1XYZ 3x3 range with coordinates of 3 non-colinear points in the plane
Plane2XYZ 3x3 range with coordinates of 3 non-colinear points in the plane

Plane 1 X Y Z
A #VALUE! #VALUE! #VALUE!
B #VALUE! #VALUE! #VALUE!
C #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
Plane 2 Z
A #VALUE! #VALUE! #VALUE!
B #VALUE! #VALUE! #VALUE!
C #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!

IP1 #VALUE! #VALUE! #VALUE!


IP2 #VALUE! #VALUE! #VALUE!
IP3 #VALUE! #VALUE! #VALUE!
IP4 #VALUE! #VALUE! #VALUE!

PView(PlotXYZ, ViewPoint, Target, XoY)


Perspective projection of 3D lines
PlotXYZ 3D coordinates of lines to be plotted
Viewpoint 3D coordinates of viewpoint
Target Optional 3D cordinates of target, default = centroid of Plotxyz points
XoY Optional X over Y ratio for plot; default = 1.5, enter 0 for no scaling

Plane 1
Plane 2
Intersection
Plane 1
Plane 2
Intersection

Viewpoint 20.00 100.00 30.00


Target #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!
rate intersecting planes

Sum
#VALUE!
#VALUE!
#VALUE!
PView(PlotXYZ, ViewPoint, Target)
Perspective projection of 3D lines
PlotXYZ 3D coordinates of lines to be plotted
Viewpoint 3D coordinates of viewpoint
Target Optional 3D cordinates of target, default = centroid of Plotxyz points
XoY Optional X over Y ratio for plot; default = 1.5, enter 0 for no scaling

Output: XY coordinates of the 3D lines projected onto a plane perpendicular to the view line.
If XoY is omitted or non-zero, coordinates of a boundary frame are added to the output array

Example
View distance 20 m
View angle to Z axis 45 degrees
View angle to XZ plane 360 degrees

Viewpoint 16.642136 1.5 16.142136 -2.70526 0.7853982 2


Target 2.5 1.5 2 -2.96706 0 1
3D Model coordinates PView output
X Y Z X Y
0 0 4 #VALUE! #VALUE! #VALUE!
0.00 3.00 4.00 #VALUE! #VALUE! #VALUE!
5 3 4.00 #VALUE! #VALUE! #VALUE!
5 0 4.00 #VALUE! #VALUE! #VALUE!
4 0 4.00 #VALUE! #VALUE! #VALUE!
4 2 4.00 #VALUE! #VALUE! #VALUE!
3 2 4.00 #VALUE! #VALUE! #VALUE!
3 0 4.00 #VALUE! #VALUE! #VALUE!
0 0 4.00 #VALUE! #VALUE! #VALUE!
0 0 0 #VALUE! #VALUE! #VALUE!
0 3 0 #VALUE! #VALUE! #VALUE!
0 3 4 #VALUE! #VALUE! #VALUE!
0 3 0 #VALUE! #VALUE! #VALUE!
5 3 0 #VALUE! #VALUE! #VALUE!
5 0 0 #VALUE! #VALUE! #VALUE!
5.00 0.00 4.00 #VALUE! #VALUE! #VALUE!
5 3 4 #VALUE! #VALUE! #VALUE!
5.00 3.00 0.00 #VALUE! #VALUE! #VALUE!
0.08 #VALUE! #VALUE! #VALUE!
0 5 1.5 2 #VALUE! #VALUE! #VALUE!
0.1570796 5 1.5019658 2.0124117 #VALUE! #VALUE! #VALUE!
0.3141593 5 1.5077664 2.0239027 #VALUE! #VALUE! #VALUE!
0.4712389 5 1.517115 2.0335902 #VALUE! #VALUE! #VALUE!
0.6283185 5 1.5295453 2.0406656 #VALUE! #VALUE! #VALUE!
0.7853982 5 1.5444288 2.0444288 #VALUE! #VALUE! #VALUE!
0.9424778 5 1.5609984 2.044318 #VALUE! #VALUE! #VALUE!
1.0995574 5 1.578377 2.0399351 #VALUE! #VALUE! #VALUE!
1.2566371 5 1.5956106 2.0310658 #VALUE! #VALUE! #VALUE!
1.4137167 5 1.6117049 2.0176923 #VALUE! #VALUE! #VALUE!
1.5707963 5 1.6256637 2 #VALUE! #VALUE! #VALUE!
1.727876 5 1.6365282 1.9783761 #VALUE! #VALUE! #VALUE!
1.8849556 5 1.6434159 1.9534013 #VALUE! #VALUE! #VALUE!
2.0420352 5 1.6455573 1.9258348 #VALUE! #VALUE! #VALUE!
2.1991149 5 1.6423297 1.8965914 #VALUE! #VALUE! #VALUE!
2.3561945 5 1.6332865 1.8667135 #VALUE! #VALUE! #VALUE!
2.5132741 5 1.6181812 1.8373375 #VALUE! #VALUE! #VALUE!
2.6703538 5 1.5969852 1.8096558 #VALUE! #VALUE! #VALUE!
2.8274334 5 1.569898 1.7848761 #VALUE! #VALUE! #VALUE!
2.984513 5 1.5373505 1.7641785 #VALUE! #VALUE! #VALUE!
3.1415927 5 1.5 1.7486726 #VALUE! #VALUE! #VALUE!
3.2986723 5 1.4587179 1.7393552 #VALUE! #VALUE! #VALUE!
3.4557519 5 1.4145691 1.7370708 #VALUE! #VALUE! #VALUE!
3.6128316 5 1.3687847 1.7424755 #VALUE! #VALUE! #VALUE!
3.7699112 5 1.3227281 1.7560062 #VALUE! #VALUE! #VALUE!
3.9269908 5 1.2778559 1.7778559 #VALUE! #VALUE! #VALUE!
4.0840704 5 1.2356734 1.8079555 #VALUE! #VALUE! #VALUE!
4.2411501 5 1.1976886 1.8459647 #VALUE! #VALUE! #VALUE!
4.3982297 5 1.1653628 1.8912698 #VALUE! #VALUE! #VALUE!
4.5553093 5 1.1400619 1.9429914 #VALUE! #VALUE! #VALUE!
4.712389 5 1.1230089 2 #VALUE! #VALUE! #VALUE!
4.8694686 5 1.1152386 2.0609402 #VALUE! #VALUE! #VALUE!
5.0265482 5 1.1175575 2.1242631 #VALUE! #VALUE! #VALUE!
5.1836279 5 1.1305083 2.1882654 #VALUE! #VALUE! #VALUE!
5.3407075 5 1.1543421 2.2511351 #VALUE! #VALUE! #VALUE!
5.4977871 5 1.1889982 2.3110018 #VALUE! #VALUE! #VALUE!
5.6548668 5 1.2340922 2.3659907 #VALUE! #VALUE! #VALUE!
5.8119464 5 1.2889145 2.4142786 #VALUE! #VALUE! #VALUE!
5.969026 5 1.3524376 2.4541505 #VALUE! #VALUE! #VALUE!
6.1261057 5 1.4233333 2.4840547 #VALUE! #VALUE! #VALUE!
6.2831853 5 1.5 2.5026548 #VALUE! #VALUE! #VALUE!
6.4402649 5 1.5805984 2.508878 #VALUE! #VALUE! #VALUE!
6.5973446 5 1.6630953 2.5019558 #VALUE! #VALUE! #VALUE!
6.7544242 5 1.7453156 2.4814589 #VALUE! #VALUE! #VALUE!
6.9115038 5 1.8249984 2.4473219 #VALUE! #VALUE! #VALUE!
7.0685835 5 1.8998595 2.3998595 #VALUE! #VALUE! #VALUE!
7.2256631 5 1.9676547 2.3397711 #VALUE! #VALUE! #VALUE!
7.3827427 5 2.0262458 2.2681356 #VALUE! #VALUE! #VALUE!
7.5398224 5 2.0736638 2.1863947 #VALUE! #VALUE! #VALUE!
7.696902 5 2.1081712 2.0963249 #VALUE! #VALUE! #VALUE!
7.8539816 5 2.1283185 2 #VALUE! #VALUE! #VALUE!
8.0110613 5 2.1329945 1.8997435 #VALUE! #VALUE! #VALUE!
8.1681409 5 2.1214691 1.7980725 #VALUE! #VALUE! #VALUE!
8.3252205 5 2.0934261 1.6976343 #VALUE! #VALUE! #VALUE!
8.4823002 5 2.048986 1.6011383 #VALUE! #VALUE! #VALUE!
8.6393798 5 1.9887171 1.5112829 #VALUE! #VALUE! #VALUE!
8.7964594 5 1.9136343 1.4306812 #VALUE! #VALUE! #VALUE!
8.9535391 5 1.8251857 1.3617871 #VALUE! #VALUE! #VALUE!
9.1106187 5 1.7252269 1.3068229 #VALUE! #VALUE! #VALUE!
9.2676983 5 1.615983 1.2677122 #VALUE! #VALUE! #VALUE!
9.424778 5 1.5 1.2460178 #VALUE! #VALUE! #VALUE!
9.5818576 5 1.3800854 1.2428889 #VALUE! #VALUE! #VALUE!
9.7389372 5 1.2592402 1.2590176 #VALUE! #VALUE! #VALUE!
9.8960169 5 1.1405842 1.2946068 #VALUE! #VALUE! #VALUE!
10.053096 5 1.0272751 1.3493499 #VALUE! #VALUE! #VALUE!
10.210176 5 0.9224252 1.4224252 #VALUE! #VALUE! #VALUE!
10.367256 5 0.8290171 1.5125024 #VALUE! #VALUE! #VALUE!
10.524335 5 0.7498199 1.6177641 #VALUE! #VALUE! #VALUE!
10.681415 5 0.6873097 1.7359409 #VALUE! #VALUE! #VALUE!
10.838495 5 0.6435956 1.8643589 #VALUE! #VALUE! #VALUE!
10.995574 5 0.6203541 2 #VALUE! #VALUE! #VALUE!
11.152654 5 0.6187723 2.1395728 #VALUE! #VALUE! #VALUE!
11.309734 5 0.6395043 2.279592 #VALUE! #VALUE! #VALUE!
11.466813 5 0.6826396 2.4164659 #VALUE! #VALUE! #VALUE!
11.623893 5 0.7476859 2.5465882 #VALUE! #VALUE! #VALUE!
11.780972 5 0.8335676 2.6664324 #VALUE! #VALUE! #VALUE!
11.938052 5 0.9386391 2.772647 #VALUE! #VALUE! #VALUE!
12.095132 5 1.060714 2.8621473 #VALUE! #VALUE! #VALUE!
12.252211 5 1.1971087 2.9322036 #VALUE! #VALUE! #VALUE!
12.409291 5 1.3447007 2.980521 #VALUE! #VALUE! #VALUE!
12.566371 5 1.5 3.0053096 #VALUE! #VALUE! #VALUE!
12.72345 5 1.6592309 3.0053443 #VALUE! #VALUE! #VALUE!
12.88053 5 1.8184242 2.980009 #VALUE! #VALUE! #VALUE!
13.03761 5 1.9735161 2.9293276 #VALUE! #VALUE! #VALUE!
13.194689 5 2.1204515 2.8539782 #VALUE! #VALUE! #VALUE!
13.351769 5 2.2552901 2.7552901 #VALUE! #VALUE! #VALUE!
13.508848 5 2.374311 2.6352241 #VALUE! #VALUE! #VALUE!
13.665928 5 2.4741145 2.4963361 #VALUE! #VALUE! #VALUE!
13.823008 5 2.5517169 2.3417235 #VALUE! #VALUE! #VALUE!
13.980087 5 2.6046375 2.1749574 #VALUE! #VALUE! #VALUE!
14.137167 5 2.6309734 2 #VALUE! #VALUE! #VALUE!
14.294247 5 2.6294609 1.821111 #VALUE! #VALUE! #VALUE!
14.451326 5 2.5995222 1.6427436 #VALUE! #VALUE! #VALUE!
14.608406 5 2.5412948 1.4694338 #VALUE! #VALUE! #VALUE!
14.765485 5 2.4556423 1.3056852 #VALUE! #VALUE! #VALUE!
14.922565 5 2.3441478 1.1558522 #VALUE! #VALUE! #VALUE!
15.079645 5 2.2090874 1.0240249 #VALUE! #VALUE! #VALUE!
15.236724 5 2.0533862 0.9139183 #VALUE! #VALUE! #VALUE!
15.393804 5 1.8805558 0.8287698 #VALUE! #VALUE! #VALUE!
15.550884 5 1.6946155 0.7712459 #VALUE! #VALUE! #VALUE!
15.707963 5 1.5 0.7433629 #VALUE! #VALUE! #VALUE!
15.865043 5 1.3014528 0.7464226 #VALUE! #VALUE! #VALUE!
16.022123 5 1.1039113 0.7809645 #VALUE! #VALUE! #VALUE!
16.179202 5 0.9123837 0.846738 #VALUE! #VALUE! #VALUE!
16.336282 5 0.731822 0.9426936 #VALUE! #VALUE! #VALUE!
16.493361 5 0.5669946 1.0669946 #VALUE! #VALUE! #VALUE!
16.650441 5 0.4223608 1.2170493 #VALUE! #VALUE! #VALUE!
16.807521 5 0.3019512 1.3895636 #VALUE! #VALUE! #VALUE!
16.9646 5 0.2092565 1.580612 #VALUE! #VALUE! #VALUE!
17.12168 5 0.1471293 1.7857263 #VALUE! #VALUE! #VALUE!
17.27876 5 0.1176992 2 #VALUE! #VALUE! #VALUE!
17.435839 5 0.122306 2.2182053 #VALUE! #VALUE! #VALUE!
17.592919 5 0.1614512 2.4349209 #VALUE! #VALUE! #VALUE!
17.749998 5 0.2347708 2.6446665 #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
o the output array

1 0 0
1 1 0
1 1 1

#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! #VALUE!
#VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
200 200 100
#DIV/0! #DIV/0! #DIV/0!
#VALUE!
interp #VALUE! =interp(tablerange, value, column no)
interp2 #VALUE! =interp2(tablerange, row value, column val)
loginterp #VALUE! =loginterp(tablerange, value, column no)
loginterp2 #VALUE! =loginterp2(tablerange, row value, column val)
quadinterp #VALUE! =quadinterp(tablerange, value, column no)
interpa #VALUE! =interp(tablerange, RowValueRange, column no)
#VALUE! 45
#VALUE!
40 f(x) = 1.15452261306533 x + 18.0075376884422
#VALUE! R² = 0.81867768627086
#VALUE! 35
#VALUE!
Notes 30
Tablerange includes the lookup value column and row for all functions (shaded yellow)
25
For interp, quadinterp, and interpa lookup values may be in ascending or descending order
For interp2, loginterp, and loginterp2 lookup values must 20be in ascending order
To return all values for interpa enter as an array function (cntrl-shift-enter)
15
Age K1 Shrinkage, Arid Age
10
Days Thickness, mm Column
50 100 200 400
5 Thickness
1 0.19 0.09 0.03 0
3 0.3 0.13 0.05 0
0.01 Interpa row values
4 6 8 10 12 14 16 18 20 22
10 0.48 0.24 0.08 0.03 Age
30 0.75 0.48 0.19 0.05
100 0.97 0.73 0.38 0.13
365 1.16 0.91 0.59 0.3
1095 1.26 1.05 0.75 0.43
3650 1.29 1.1 0.83 0.54
10951 1.29 1.1 0.86 0.58

1.4

1.2

1
Y-Axis

0.8

0.6

0.4

0.2

0
1 10 100 X-Axis 1000 10000 100000
Linear interpolation
2 way linear interpolation
Log interpolation
2 way log interpolation
Quadratic interpolation
Linear interpolation of a range of values

306533 x + 18.0075376884422
27086

6 20
xVal yVal 7 28
yellow) 6 20 9 31
nding order Column L 7 28 15 38
Linear
(Column L) 9 31 21 40
15 38
21 40
160
3 For 1D interpolation
250 For 2D interpolation

pa row values
14 16 18 20 22
160 xVal 10
161 trendline 29.5528
162 forecast 29.5528
163 interpolate #ADDIN?
164 Hand-Calc 32.1667
165 #VALUE!
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 2005-2011 Interactive Design Services Pty Ltd. all rights reserved

Revision History

Current Version 2.06 31-Mar-11

Rev Date By Description

1.00 1-Jun-05 DAJ First release


1.01 14-Dec-05 DAJ Interp modified for X values in descending order
1.02 23-Dec-06 DAJ IP modified to use arrays in place of ranges
1.03 18-Jul-07 DAJ IP modified to allow array output
1.04 25-Aug-07 DAJ Quadinterp added
1.05 16-Sep-07 DAJ IPLC, IPCC, IPSS, IPSSS added.
1.06 10-Aug-08 DAJ INSIDE added, IPax separated from IP
1.07 6-Jan-09 DAJ Sign of rotation about Y axis corrected in Rotate.
1.08 14-Feb-09 DAJ PDist added
1.09 24-Feb-09 DAJ PDist modified for duplicate points
1.10 4/7/2009 DAJ IP_4 function added
1.11 7/16/2009 DAJ IPSSS corrected for revised Rotate
1.12 7/18/2009 DAJ ArcCenT2IP and ArcCenP3 added
1.13 7/19/2009 DAJ Minor changes to code, no change to results
1.14 7/19/2009 DAJ ArcCenP3_2 added
2.01 8/18/2009 DAJ ArcCenP3 replaced with ArcCenP3_2, ArcCenTP and ArcCenRP a
2.02 11/27/2010 DAJ MaxDist fucntion added
2.03 12/7/2010 DAJ Interpolation functions re-written, notes and interpa example added
2.04 12/19/2010 DAJ Quadinterp corrected for a point in the final segment
2.05 3/18/2011 DAJ 3D IP functions added (IPPlaneLine, IP3D, PDist3D)
2.06 3/31/2011 DAJ More 3D Functions (PlaneCoeff, IPPlanePLane, PView, RotateM)
2.07 11/4/2011 DAJ PlaneCoeff fixed for use with IPPlaneLine (PlaneXYZ passed by va
all rights reserved

ending order

ted in Rotate.

_2, ArcCenTP and ArcCenRP added


otes and interpa example added
he final segment
e, IP3D, PDist3D)
PlanePLane, PView, RotateM)
neLine (PlaneXYZ passed by value)

Potrebbero piacerti anche