View Single Post
  #2  
Old 03-07-2005, 11:37
shelbym's Avatar
shelbym shelbym is offline
Senior Member
 
Join Date: Nov 2002
Location: Cheyenne, WY
Posts: 1,790
Blog Entries: 13
Send a message via ICQ to shelbym Send a message via AIM to shelbym Send a message via MSN to shelbym Send a message via Yahoo to shelbym
Default VBA Help File

I find the VBA help file to be the best resource, it includes examples and is pretty easy to follow here is the page on Intersect Shape.Intersect
Code:
Shape.Intersect

Function Intersect(ByVal TargetShape As Shape, [ByVal LeaveSource As Boolean = True], [ByVal LeaveTarget As Boolean = True]) As Shape

Description

The Intersect method creates an object which is an intersection of two shapes.
 
TargetShape
 Specifies the object that intersects with the shape object [in]
 
LeaveSource
 Determines whether to keep the shape object after the intersection is complete [in]
Optional
Default value = True
 
LeaveTarget
 Determines whether to keep the target object after the intersection is complete [in]
Optional
Default value = True 

Example

The following example creates a color diagram for the additive color model (RGB). Three circles are filled, each with red, green, and blue. At the intersections of the circles, the resulting color blend fills the areas: white in the middle, while cyan, magenta, and yellow fill the areas between each pair of circles.

Sub Test()

 Dim s(0 To 2) As Shape
 Dim si(0 To 2) As Shape
 Dim sm As Shape
 Dim x As Double, y As Double
 Dim i As Long, n As Long
 Dim r As Long, g As Long, b As Long
 Dim c1 As Color, c2 As Color

 For i = 0 To 2

  x = ActivePage.SizeWidth / 2 + 1 * Cos(i * 2.09439507)
  y = ActivePage.SizeHeight / 2 + 1 * Sin(i * 2.09439507)
  Set s(i) = ActiveLayer.CreateEllipse2(x, y, 1.5)
  r = -255 * (i = 0)
  g = -255 * (i = 1)
  b = -255 * (i = 2)
  s(i).Fill.UniformColor.RGBAssign r, g, b

 Next i

 For i = 0 To 2

  n = (i + 1) Mod 3
  Set si(i) = s(i).Intersect(s(n))
  Set c1 = s(i).Fill.UniformColor
  Set c2 = s(n).Fill.UniformColor
  r = c1.RGBRed + c2.RGBRed
  g = c1.RGBGreen + c2.RGBGreen
  b = c1.RGBBlue + c2.RGBBlue
  si(i).Fill.UniformColor.RGBAssign r, g, b

 Next i

 Set sm = si(1).Intersect(si(2))
 sm.Fill.UniformColor.RGBAssign 255, 255, 255

End Sub
Reply With Quote