[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Intersecting geometric shapes
- Subject: Re: Intersecting geometric shapes
- From: "Rick Towler" <rtowler(at)u.washington.edu>
- Date: Fri, 29 Jun 2001 06:00:22 GMT
- Newsgroups: comp.lang.idl-pvwave
- Organization: UW - School of Fisheries
- References: <3B3B8421.3080005@fsl.orst.edu>
- Xref: news.doit.wisc.edu comp.lang.idl-pvwave:25470
I'm sure there is a more elegant way of doing this but since your post has
sat here all day without a response...
Fire up your favorite drawing program and create a new image, say 200x200.
Draw your circle white on black. Now create another 200x200 image this time
drawing your rectangle. Save as an indexed color image (.gif (pre IDL 5.4)
or .png should work)
load these images into IDL, add the arrays, and do a where on the new array
for values that are double your white color palette index value. The number
of elements in the result of your where will give you the pixel area of your
intersection. Then all you have to do is convert pixel area back to your
measure of area.
There are a lot of details. You have to scale your original shapes
correctly, converting from your measure to pixel area. Then you need to
arrange your shapes in your image correctly. Also, you have to figure out
how your image program indexes the color palette (this is easy, just print
the image data out. You only have two colors and you'll see two values.
They may be 0 and 1. They may be 0 and 255. It depends on the program you
use to write the images).
This is a pretty simple approach. You could spice it up so it is more
flexible.
-Rick
"Joe Means" <means@fsl.orst.edu> wrote in message
3B3B8421.3080005@fsl.orst.edu">news:3B3B8421.3080005@fsl.orst.edu...
> Hello IDL group,
> I need to calculate the area of intersecting geometric shapes. Right
> now a circle and rectangle. Does nayone know of code to do this?
>
> --
> Joseph E. Means
> Assistant Professor, joe.means@orst.edu
> Department of Forest Science
> Oregon State University
> Corvallis, OR 97331-5752
> 541-750-7351
>