<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'><div dir='ltr'>
I have two challenges with closed paths, which may not be Cairo problems, but the output from the algorithms I must find will be drawn using Cairo, so I'm wondering if it can be used to save me some programming effort.<div><br></div><div>(A)</div><div>I have a closed shape representing some physical object. &nbsp;The application represents the shape as (1) a collection of straight lines, each joining two points [x1,y1] and [x2,y2], and (2) a collection of (circular) curved lines, each with a circle centre point [xc, yc], a radius r, and starting and finishing angles theta1 and theta2. &nbsp;I have a routine which can calculate how to order the lines, both straight and curved, to produce a path defining the shape, which I will then draw using Cairo. &nbsp;No bezier curves are involved (so far, but I may have to think about that one day...) &nbsp;The shape is not necessarily regular, and the application's user defines his own objects and draws their shapes. &nbsp;Simple stuff so far.</div><div><br></div><div>The entire object may itself be rotated. &nbsp;There is an axis centre point [xa, ya], and a rotation angle thetaR. &nbsp;I need to find the closed path representing the area swept by the object as it rotates between the two positions.</div><div><br></div><div>I'm part of the way there. &nbsp;I already have routines for some of this:</div><div>If I create a rotated copy of the shape, and intersect that with the original shape, and also with a collection of new curved lines each defining the movement of vertices as they move between the two positions, I now have a shape with many straight and curved components. &nbsp;I need to find the outermost components of this shape, and pass these into my routine for ordering them and producing the path. &nbsp;This last step is something I haven't figured out how to do. &nbsp;Any suggestions?</div><div><br></div><div>(B)</div><div>Some objects are provided by the user as bitmap images. &nbsp;Perhaps they originated as photographs. &nbsp;There will be an area of the (rectangular) bitmap around the outside of the object itself which is 'transparent', and each transparent pixel has the same colour. &nbsp;I need to generate the path defining the edge of the object itself, i.e. the outer extent of pixels which have some other colour than 'transparent'. &nbsp;I'm sure someone must have tackled this problem already.</div><div><br></div><div>I'm quite green with Cairo. &nbsp;I mentioned when joining the list, I'm using a wrapper DLL which gives me access to its functionality from applications written in 'classic' VB.</div><div><br></div><div>Andy</div>                                               </div></body>
</html>