Source code for drawing a polygon (HEEEEEELLLLLLLPPP!)

Source code for drawing a polygon (HEEEEEELLLLLLLPPP!)

Post by Brian Kenda » Fri, 13 Jun 1997 04:00:00



Hi there!

I need the source code for drawing a polygon for the mac. I've tried my
own polygon drawing routines and they're far from working. C or C++ would
be best. Pascals okay.

Brian K.

????????????????????????????????????????????????????????????????????
"If you take cranberries and stew them like applesauce,
it tastles much more like prunes then rhubarb does." - Groucho Marx
????????????????????????????????????????????????????????????????????

 
 
 

Source code for drawing a polygon (HEEEEEELLLLLLLPPP!)

Post by Real Email in Si » Sat, 14 Jun 1997 04:00:00


:
: Hi there!

Oops, the title wasn't anything that has to do with lines, I think it was
320x200x256 graphics or something.  Just search for '320x' and it should
be in there...

--
E M A I L :   substitute 'eNn' 'Oh' 'eSs' 'Pee' 'Aay' 'eMm'    
                with 'Kay' 'aRe' 'yoU' 'eSs' 'Tea' 'whY'

 
 
 

Source code for drawing a polygon (HEEEEEELLLLLLLPPP!)

Post by Real Email in Si » Sat, 14 Jun 1997 04:00:00


:
: Hi there!
:
: I need the source code for drawing a polygon for the mac. I've tried my
: own polygon drawing routines and they're far from working. C or C++ would
: be best. Pascals okay.

I just posted my code for calculating edge lists in response to someone
that was looking for line drawing routines.  Look for 'line' and you'll
probably find it.  If not email me (figure out the tagline puzzle or your
mail will bounce) and I'll send you the code and an explanation as to how
you can use it to fill in polys.

--
E M A I L :   substitute 'eNn' 'Oh' 'eSs' 'Pee' 'Aay' 'eMm'    
                with 'Kay' 'aRe' 'yoU' 'eSs' 'Tea' 'whY'

 
 
 

Source code for drawing a polygon (HEEEEEELLLLLLLPPP!)

Post by @mindspring.co » Sun, 15 Jun 1997 04:00:00


This is a pascal program that allows you to create a
polygon. You'll have to clean it up.
Really, it's simple:
OpenPoly, do your lineto calls, then closepoly.
Kevin Paszalek
k...@Mindspring.com

program CHTracer;
        const
                duration = 10;

        var
                hPoly: polyHandle;
                mychar: char;
                mycharcode: integer;
                x: integer;
                myevent: eventRecord;
                done: boolean;
                TWindow: windowPtr;
                finalTick: longint;

        procedure makePoly (var x: integer;
                                                                        myEvent: eventRecord);
                var
                        tempPoint: point;

        begin
                foreColor(redcolor);
                tempPoint := myevent.where;
                globalToLocal(tempPoint);
                if x = 0 then
                        begin
                                moveto(tempPoint.h, tempPoint.v);
                                lineto(tempPoint.h, tempPoint.v);
                        end
                else
                        lineto(tempPoint.h, tempPoint.v);
                x := x + 1;
        end;

        procedure DoTWindow (var TWindow: windowPtr);
                var
                        newTitle: str255;
        begin
                TWindow := GetNewCWindow(130, nil, nil);
                newTitle := 'Tracer';
                SetWTitle(TWindow, newTitle);
                selectWindow(TWindow);
                setPort(TWindow);
        end;

{€€€€€€€€€€€€€€€€€MAIN€€€€€€€€€€€€€€€}

begin {MAIN}
        MaxApplZone;
        done := false;
        x := 0;
        TWindow := nil;
        DoTWindow(TWindow);

        foreColor(redcolor);
        hPoly := OpenPoly;

        repeat
                repeat
                        SetCCursor(hCCrsr);
                        SystemTask;
                until GetNextEvent(everyEvent, MyEvent);

                if MyEvent.what = keydown then
                        begin
                                mycharcode := BitAnd(MyEvent.Message, CharCodeMask);
                                case mycharcode of
                                        100: {d for done with this tracing}
                                                begin
                                                        closePoly;
                                                        invertPoly(hPoly);
                                                        Delay(10, finalTick);
                                                        invertPoly(hPoly);
                                                        Delay(10, finalTick);
                                                        invertPoly(hPoly);
                                                        Delay(10, finalTick);
                                                        invertPoly(hPoly);
                                                        Delay(10, finalTick);
                                                        invertPoly(hPoly);
                                                        Delay(10, finalTick);
                                                        eraseRect(hpoly^^.polybBox);
                                                        Delay(10, finalTick);
                                                        FramePoly(hpoly);
                                                        KillPoly(hpoly);
                                                end;
                                        113: {q for quit}
                                                begin
                                                        done := true;

                                                end;
                                end; {case}
                        end;
                if MyEvent.what = mousedown then
                        makePoly(x, myEvent);

        until Done;

        if TWindow <> nil then
                DisposeWindow(TWindow);
end.

 
 
 

Source code for drawing a polygon (HEEEEEELLLLLLLPPP!)

Post by @mindspring.co » Sun, 15 Jun 1997 04:00:00


This is a pascal program that allows you to create a
polygon. You'll have to clean it up.
Really, it's simple:
OpenPoly, do your lineto calls, then closepoly.
Kevin Paszalek
k...@Mindspring.com

program CHTracer;
        const
                duration = 10;

        var
                hPoly: polyHandle;
                mychar: char;
                mycharcode: integer;
                x: integer;
                myevent: eventRecord;
                done: boolean;
                TWindow: windowPtr;
                finalTick: longint;

        procedure makePoly (var x: integer;
                                                                        myEvent: eventRecord);
                var
                        tempPoint: point;

        begin
                foreColor(redcolor);
                tempPoint := myevent.where;
                globalToLocal(tempPoint);
                if x = 0 then
                        begin
                                moveto(tempPoint.h, tempPoint.v);
                                lineto(tempPoint.h, tempPoint.v);
                        end
                else
                        lineto(tempPoint.h, tempPoint.v);
                x := x + 1;
        end;

        procedure DoTWindow (var TWindow: windowPtr);
                var
                        newTitle: str255;
        begin
                TWindow := GetNewCWindow(130, nil, nil);
                newTitle := 'Tracer';
                SetWTitle(TWindow, newTitle);
                selectWindow(TWindow);
                setPort(TWindow);
        end;

{€€€€€€€€€€€€€€€€€MAIN€€€€€€€€€€€€€€€}

begin {MAIN}
        MaxApplZone;
        done := false;
        x := 0;
        TWindow := nil;
        DoTWindow(TWindow);

        foreColor(redcolor);
        hPoly := OpenPoly;

        repeat
                repeat
                        SetCCursor(hCCrsr);
                        SystemTask;
                until GetNextEvent(everyEvent, MyEvent);

                if MyEvent.what = keydown then
                        begin
                                mycharcode := BitAnd(MyEvent.Message, CharCodeMask);
                                case mycharcode of
                                        100: {d for done with this tracing}
                                                begin
                                                        closePoly;
                                                        invertPoly(hPoly);
                                                        Delay(10, finalTick);
                                                        invertPoly(hPoly);
                                                        Delay(10, finalTick);
                                                        invertPoly(hPoly);
                                                        Delay(10, finalTick);
                                                        invertPoly(hPoly);
                                                        Delay(10, finalTick);
                                                        invertPoly(hPoly);
                                                        Delay(10, finalTick);
                                                        eraseRect(hpoly^^.polybBox);
                                                        Delay(10, finalTick);
                                                        FramePoly(hpoly);
                                                        KillPoly(hpoly);
                                                end;
                                        113: {q for quit}
                                                begin
                                                        done := true;

                                                end;
                                end; {case}
                        end;
                if MyEvent.what = mousedown then
                        makePoly(x, myEvent);

        until Done;

        if TWindow <> nil then
                DisposeWindow(TWindow);
end.

 
 
 

Source code for drawing a polygon (HEEEEEELLLLLLLPPP!)

Post by Brian Kenda » Sun, 15 Jun 1997 04:00:00


In article <33A2D8B6.5...@mindspring.com>, @mindspring.com wrote:
> This is a pascal program that allows you to create a
> polygon. You'll have to clean it up.
> Really, it's simple:
> OpenPoly, do your lineto calls, then closepoly.
> Kevin Paszalek
> k...@Mindspring.com

> program CHTracer;
>         const
>                 duration = 10;

>         var
>                 hPoly: polyHandle;
>                 mychar: char;
>                 mycharcode: integer;
>                 x: integer;
>                 myevent: eventRecord;
>                 done: boolean;
>                 TWindow: windowPtr;
>                 finalTick: longint;

>         procedure makePoly (var x: integer;

myEvent: eventRecord);

- Show quoted text -

>                 var
>                         tempPoint: point;

>         begin
>                 foreColor(redcolor);
>                 tempPoint := myevent.where;
>                 globalToLocal(tempPoint);
>                 if x = 0 then
>                         begin
>                                 moveto(tempPoint.h, tempPoint.v);
>                                 lineto(tempPoint.h, tempPoint.v);
>                         end
>                 else
>                         lineto(tempPoint.h, tempPoint.v);
>                 x := x + 1;
>         end;

>         procedure DoTWindow (var TWindow: windowPtr);
>                 var
>                         newTitle: str255;
>         begin
>                 TWindow := GetNewCWindow(130, nil, nil);
>                 newTitle := 'Tracer';
>                 SetWTitle(TWindow, newTitle);
>                 selectWindow(TWindow);
>                 setPort(TWindow);
>         end;

> {€€€€€€€€€€€€€€€€€MAIN€€€€€€€€€€€€€€€}

> begin {MAIN}
>         MaxApplZone;
>         done := false;
>         x := 0;
>         TWindow := nil;
>         DoTWindow(TWindow);

>         foreColor(redcolor);
>         hPoly := OpenPoly;

>         repeat
>                 repeat
>                         SetCCursor(hCCrsr);
>                         SystemTask;
>                 until GetNextEvent(everyEvent, MyEvent);

>                 if MyEvent.what = keydown then
>                         begin
>                                 mycharcode := BitAnd(MyEvent.Message,
CharCodeMask);
>                                 case mycharcode of
>                                         100: {d for done with this tracing}
>                                                 begin
>                                                         closePoly;
>                                                         invertPoly(hPoly);
>                                                         Delay(10, finalTick);
>                                                         invertPoly(hPoly);
>                                                         Delay(10, finalTick);
>                                                         invertPoly(hPoly);
>                                                         Delay(10, finalTick);
>                                                         invertPoly(hPoly);
>                                                         Delay(10, finalTick);
>                                                         invertPoly(hPoly);
>                                                         Delay(10, finalTick);

eraseRect(hpoly^^.polybBox);

- Show quoted text -

>                                                         Delay(10, finalTick);
>                                                         FramePoly(hpoly);
>                                                         KillPoly(hpoly);
>                                                 end;
>                                         113: {q for quit}
>                                                 begin
>                                                         done := true;

>                                                 end;
>                                 end; {case}
>                         end;
>                 if MyEvent.what = mousedown then
>                         makePoly(x, myEvent);

>         until Done;

>         if TWindow <> nil then
>                 DisposeWindow(TWindow);
> end.

Um... I already know this. OpenPoly and ClosePoly work just fine but I
need the source code for drawing a polygon step by step. What I'm trying
to achieve is a slightly modified way of drawing polygons. I need to know
exactly how to do it step by step because for every pixel it draws, a
little bit more math must be done. Unfortunately, I can't do this if the
whole polygon gets drawn in a flash.

Thanks anyway.

Brian K.

P.S. If anybody else has something I can look at, just let me know. (Don't
email me!!!! The server is down. Just reply using this news group or
whatever.)

????????????????????????????????????????????????????????????????????
"If you take cranberries and stew them like applesauce,
it tastles much more like prunes then rhubarb does." - Groucho Marx
????????????????????????????????????????????????????????????????????

 
 
 

Source code for drawing a polygon (HEEEEEELLLLLLLPPP!)

Post by s.. » Tue, 17 Jun 1997 04:00:00


This is a multi-part message in MIME format.

--------------5D3F1174783D
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

Brian Kendall wrote:

> In article <33A2D8B6.5...@mindspring.com>, @mindspring.com wrote:

> > This is a pascal program that allows you to create a
> > polygon. You'll have to clean it up.
> > Really, it's simple:
> > OpenPoly, do your lineto calls, then closepoly.
> > Kevin Paszalek
> > k...@Mindspring.com

> > program CHTracer;
> >         const
> >                 duration = 10;

> >         var
> >                 hPoly: polyHandle;
> >                 mychar: char;
> >                 mycharcode: integer;
> >                 x: integer;
> >                 myevent: eventRecord;
> >                 done: boolean;
> >                 TWindow: windowPtr;
> >                 finalTick: longint;

> >         procedure makePoly (var x: integer;

> myEvent: eventRecord);
> >                 var
> >                         tempPoint: point;

> >         begin
> >                 foreColor(redcolor);
> >                 tempPoint := myevent.where;
> >                 globalToLocal(tempPoint);
> >                 if x = 0 then
> >                         begin
> >                                 moveto(tempPoint.h, tempPoint.v);
> >                                 lineto(tempPoint.h, tempPoint.v);
> >                         end
> >                 else
> >                         lineto(tempPoint.h, tempPoint.v);
> >                 x := x + 1;
> >         end;

> >         procedure DoTWindow (var TWindow: windowPtr);
> >                 var
> >                         newTitle: str255;
> >         begin
> >                 TWindow := GetNewCWindow(130, nil, nil);
> >                 newTitle := 'Tracer';
> >                 SetWTitle(TWindow, newTitle);
> >                 selectWindow(TWindow);
> >                 setPort(TWindow);
> >         end;

> > {€€€€€€€€€€€€€€€€€MAIN€€€€€€€€€€€€€€€}

> > begin {MAIN}
> >         MaxApplZone;
> >         done := false;
> >         x := 0;
> >         TWindow := nil;
> >         DoTWindow(TWindow);

> >         foreColor(redcolor);
> >         hPoly := OpenPoly;

> >         repeat
> >                 repeat
> >                         SetCCursor(hCCrsr);
> >                         SystemTask;
> >                 until GetNextEvent(everyEvent, MyEvent);

> >                 if MyEvent.what = keydown then
> >                         begin
> >                                 mycharcode := BitAnd(MyEvent.Message,
> CharCodeMask);
> >                                 case mycharcode of
> >                                         100: {d for done with this tracing}
> >                                                 begin
> >                                                         closePoly;
> >                                                         invertPoly(hPoly);
> >                                                         Delay(10, finalTick);
> >                                                         invertPoly(hPoly);
> >                                                         Delay(10, finalTick);
> >                                                         invertPoly(hPoly);
> >                                                         Delay(10, finalTick);
> >                                                         invertPoly(hPoly);
> >                                                         Delay(10, finalTick);
> >                                                         invertPoly(hPoly);
> >                                                         Delay(10, finalTick);

> eraseRect(hpoly^^.polybBox);
> >                                                         Delay(10, finalTick);
> >                                                         FramePoly(hpoly);
> >                                                         KillPoly(hpoly);
> >                                                 end;
> >                                         113: {q for quit}
> >                                                 begin
> >                                                         done := true;

> >                                                 end;
> >                                 end; {case}
> >                         end;
> >                 if MyEvent.what = mousedown then
> >                         makePoly(x, myEvent);

> >         until Done;

> >         if TWindow <> nil then
> >                 DisposeWindow(TWindow);
> > end.

> Um... I already know this. OpenPoly and ClosePoly work just fine but I
> need the source code for drawing a polygon step by step. What I'm trying
> to achieve is a slightly modified way of drawing polygons. I need to know
> exactly how to do it step by step because for every pixel it draws, a
> little bit more math must be done. Unfortunately, I can't do this if the
> whole polygon gets drawn in a flash.

> Thanks anyway.

> Brian K.

> P.S. If anybody else has something I can look at, just let me know. (Don't
> email me!!!! The server is down. Just reply using this news group or
> whatever.)

> ????????????????????????????????????????????????????????????????????
> "If you take cranberries and stew them like applesauce,
> it tastles much more like prunes then rhubarb does." - Groucho Marx
> ????????????????????????????????????????????????????????????????????

Uh.. hope the attachment helps?

--------------5D3F1174783D
Content-Type: application/octet-stream; name="G3D.ARJ"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="G3D.ARJ"

<encoded_portion_removed>
zUWNrWjbut3377d225/Hhdfdw4vuhjhe6/DlB2GGPK9g6gAA
--------------5D3F1174783D--

 
 
 

Source code for drawing a polygon (HEEEEEELLLLLLLPPP!)

Post by Hin Jang - CNED/F » Wed, 18 Jun 1997 04:00:00


: Hi there!

: I need the source code for drawing a polygon ...

what you seek, among related topics, can be found at
http://www.scs.ryerson.ca/h2jang/gfx_c.html

--

=-hin->

 
 
 

1. Source code for drawing a polygon (HEEEEEELLLLLLLPPP!)

Hi there!

I need the source code for drawing a polygon for the mac. I've tried my
own polygon drawing routines and they're far from working. C or C++ would
be best. Pascals okay.

Brian K.

????????????????????????????????????????????????????????????????????
"If you take cranberries and stew them like applesauce,
it tastles much more like prunes then rhubarb does." - Groucho Marx
????????????????????????????????????????????????????????????????????

2. OPEN Research position Bologna Italy

3. Source code needed for 2D Line, Polygon, Circle/Ellipse Drawing with Anialiasing

4. Quark Express under Windows ?

5. 3d Polygon source code....

6. VR/3D archituctural designs

7. Source code for arbitrary polygon clipping

8. Looking for source code for polygon intersection

9. Source code of Weiler-Atherton polygon clipping algorithm?

10. 2D polygon filling source code

11. C Source code for drawing GIFS

12. Simple Drawing Source Code Wanted