Rectangle intersection

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • kimos

    Rectangle intersection

    hi all,

    how to calculate the intersection of 2 rectangle

    a rectangle is the following:

    Rectangle makeRectangle (Point lowerLeft, Point upperRight) {

    Rectangle r;

    r.pt1 = lowerLeft;
    r.pt2 = upperRight;
    return r;
    }

    and Point is the following:

    Point makePoint(int x, int y) {
    Point p;
    p.x = x;
    p.y = y;
    return p;
    }


    And i want the know how to make:

    Rectangle intersection(Re ctangle r1, Rectangle r2)

    this should return the intersection of the 2 rectangles
    anyone can help me plz?
  • Joona I Palaste

    #2
    Re: Rectangle intersection

    kimos <urdad@hotmail. com> scribbled the following:[color=blue]
    > hi all,[/color]
    [color=blue]
    > how to calculate the intersection of 2 rectangle[/color]
    [color=blue]
    > a rectangle is the following:[/color]
    [color=blue]
    > Rectangle makeRectangle (Point lowerLeft, Point upperRight) {
    >
    > Rectangle r;[/color]
    [color=blue]
    > r.pt1 = lowerLeft;
    > r.pt2 = upperRight;
    > return r;
    > }[/color]
    [color=blue]
    > and Point is the following:[/color]
    [color=blue]
    > Point makePoint(int x, int y) {
    > Point p;
    > p.x = x;
    > p.y = y;
    > return p;
    > }[/color]

    [color=blue]
    > And i want the know how to make:[/color]
    [color=blue]
    > Rectangle intersection(Re ctangle r1, Rectangle r2)[/color]
    [color=blue]
    > this should return the intersection of the 2 rectangles
    > anyone can help me plz?[/color]

    Which part are you having trouble with, calculating the intersection's
    coordinates or implementing the algorithm as a C program?

    --
    /-- Joona Palaste (palaste@cc.hel sinki.fi) ------------- Finland --------\
    \-- http://www.helsinki.fi/~palaste --------------------- rules! --------/
    "Immanuel Kant but Genghis Khan."
    - The Official Graffitist's Handbook

    Comment

    • Malcolm

      #3
      Re: Rectangle intersection


      "kimos" <urdad@hotmail. com> wrote in message
      news:ae02c0a1.0 409250716.99fbf 20@posting.goog le.com...[color=blue]
      > hi all,
      >
      > how to calculate the intersection of 2 rectangle
      >
      > a rectangle is the following:
      >
      > Rectangle makeRectangle (Point lowerLeft, Point upperRight) {
      >
      > Rectangle r;
      >
      > r.pt1 = lowerLeft;
      > r.pt2 = upperRight;
      > return r;
      > }
      >
      > and Point is the following:
      >
      > Point makePoint(int x, int y) {
      > Point p;
      > p.x = x;
      > p.y = y;
      > return p;
      > }
      >
      >
      > And i want the know how to make:
      >
      > Rectangle intersection(Re ctangle r1, Rectangle r2)
      >
      > this should return the intersection of the 2 rectangles
      > anyone can help me plz?
      >[/color]

      Rectangle intersection(Re ctangle r1, Rectangle r2)
      {
      Find the leftmost and the bottommost rectangle.
      Find the rightmost and the topmost rectangle.

      If the left x co-ordinate of the non-leftmost rectangle is between the
      left and the right of the leftmost rectangle, you have the left cordinate of
      your intersection. If it is to the right you have no intersection, and the
      rectangles don't overlap. (If it is to the left you didn't calculate the
      leftmost rectangle correctly).

      Repeat for all the other coordinates (bottom, right, top).
      }


      Comment

      • Simon Stienen

        #4
        Re: Rectangle intersection

        kimos <urdad@hotmail. com> wrote:[color=blue]
        > hi all,
        >
        > how to calculate the intersection of 2 rectangle[/color]

        Take the rightmost left-border, the left-most right border, the bottom-most
        top border and the top-most bottom border as borders for your intersection.
        If the left border of the intersection is on the right of the right border
        ot the top border below the bottom border, there is no intersection.
        --
        Simon Stienen <http://dangerouscat.ne t> <http://slashlife.de>
        »What you do in this world is a matter of no consequence,
        The question is, what can you make people believe that you have done.«
        -- Sherlock Holmes in "A Study in Scarlet" by Sir Arthur Conan Doyle

        Comment

        • SM Ryan

          #5
          Re: Rectangle intersection

          # this should return the intersection of the 2 rectangles
          # anyone can help me plz?

          Take two pieces of paper, overlay them, and think about you're looking at. Hint:
          the intersection is either empty, a point, or a rectangle.

          --
          SM Ryan http://www.rawbw.com/~wyrmwif/
          OOOOOOOOOO! NAVY SEALS!

          Comment

          • xarax

            #6
            Re: Rectangle intersection


            "SM Ryan" <wyrmwif@tang o-sierra-oscar-foxtrot-tango.fake.org> wrote in message
            news:10lbmj8qma v9hcd@corp.supe rnews.com...[color=blue]
            > # this should return the intersection of the 2 rectangles
            > # anyone can help me plz?
            >
            > Take two pieces of paper, overlay them, and think about you're looking at.[/color]
            Hint:[color=blue]
            > the intersection is either empty, a point, or a rectangle.[/color]

            Or two points forming a line segment (the
            rectangles share some part of a border).


            Comment

            • Derrick Coetzee

              #7
              Re: Rectangle intersection

              kimos wrote:[color=blue]
              > how to calculate the intersection of 2 rectangle[/color]

              The easiest way to think about this problem conceptually is to first
              come up with an algorithm for the 1D version, intersecting two line
              segments, then generalize it.

              Suppose we have a line from a to b and a line from c to d. There are
              four cases for intersecting them:

              a <= b < c <= d : a----b c----d
              In this case the intersection is empty.

              a <= b = c <= d : a----b/c----d
              In this case the intersection is the single point b=c (the line segment
              from b to b.)

              a <= c <= b <= d : a---c===b---d
              In this case the intersection is the line from c to b.

              a <= c <= d <= b : a---c===d---b
              In this case the intersection is the line from c to d.

              If you simply apply these same four cases to the x and y coordinate
              ranges of your rectangles separately, the result will be the x and y
              coordinate ranges of the intersection of the rectangles.
              --
              Derrick Coetzee
              I grant this newsgroup posting into the public domain. I disclaim all
              express or implied warranty and all liability. I am not a professional.

              Comment

              Working...