geometry

How to find two most distant points?

This is a question that I was asked on a job interview some time ago. And I still can't figure out sensible answer. Question is: you are given set of points (x,y). Find 2 most distant points. Distant from each other. For example, for points: (0,0), (1,1), (-8, 5) - the most distant are: (1,1) and (-8,5) because the distance between th...

Closest point on a cubic Bezier curve?

How can I find the point B(t) along a cubic Bezier curve that is closest to an arbitrary point P in the plane? ...

Computational geometry: find where the triangle is after rotation, translation or reflection on a mirror

I have a small contest problem in which is given a set of points, in 2D, that form a triangle. This triangle may be subject to an arbitrary rotation, may be subject to an arbitrary translation (both in the 2D plane) and may be subject to a reflection on a mirror, but its dimensions were kept unchanged. Then, they give me a set of points ...

Draw fitted line (OpenCV)

I'm using OpenCV to fit a line from a set of points using cvFitLine() cvFitLine() returns a normalized vector that is co-linear to the line and a point on the line. See details here Using this information how can I get the equation of a line so that I can draw the line? ...

WPF: Combine Geometries / Canvas for Geometries?

Hello, I have 2 geometries A and B which I'd like to combine like shown at the end of the following drawing: http://www.imagebanana.com/view/9vm6zoy/geocombine.png How could one do this? Is there something like a "virtual canvas for geometries" where I can place A and B, move B accordingly and then get a geometrie from this? Thanks for...

Finding whether a point lies inside a rectangle or not

The rectangle can be oriented in any way...need not be axis aligned. Now I want to find whether a point lies inside the rectangle or not. One method I could think of was to rotate the rectangle and point coordinates to make the rectangle axis aligned and then by simply testing the coordinates of point whether they lies within that of re...

Divide a path into N sections using Java or PostgreSQL/PostGIS

Imagine a GPS tracking system that is following the position of several objects. The points are stored in a database (PostgreSQL + PostGIS). Each path is composed by a different number of points. That is the reason why, in order to compare a pair of paths (compare the whole path), I want to divide every path in a set of 100 points. Th...

resampling a series of points

hello, i have an array of points in 3d (imagine the trajectory of a ball) with X samples. now, i want to resample these points so that i have a new array with positions with y samples. y can be bigger or smaller than x but not smaller than 1. there will always be at least 1 sample. how would an algorithm look like to resample the orig...

How to Zip one IEnumerable with itself

I am implementing some math algorithms based on lists of points, like Distance, Area, Centroid, etc. Just like in this post: http://stackoverflow.com/questions/2227828/find-the-distance-required-to-navigate-a-list-of-points-using-linq That post describes how to calculate the total distance of a sequence of points (taken in order) by es...

Converting convex hull to binary mask

I want to generate a binary mask that has ones for all voxels inside and zeros for all voxels outside a volume. The volume is defined by the convex hull around a set of 3D coordinates (<100; some of the coordinates are inside the volume). I can get the convex hull using CONVHULLN, but how do I convert that into a binary mask? In case t...

read angles in radian and convert them in degrees/minutes/seconds

n=0; disp('This program performs an angle conversion'); disp('input data set to a straight line. Enter the name'); disp('of the file containing the input Lambda in radian: '); filename = input(' ','s'); [fid,msg] = fopen(filename,'rt'); if fid < 0 disp(msg); else A=textscan(fid, '%g',1); while ~feof(fid) Lambda = A...

finding a point on an ellipse circumference which is inside a rectangle having center point, height and width?

Hi all. I have a rectangle in .NET in which I draw an ellipse. I know the width, height and center point of that rectangle. Of course the center point of the rectangle is also the center point of the ellipse. I know how to calculate a point on a circle, however I have no clue about an ellipse. I have those parameters and an angle, i...

Break up a polygon into smaller ones

Hi, I am working with geodjango and I want to breakup a 2D Rectangular Polygon into smaller ones. My input is a big rectangle and I want to subdivide it in smaller rectangles. The sum of the smaller rectangles must be the original rectangle. All subrectangles should be equal size. How can I do that? Thank you. ...

Scaling vectors from a center point?

I'm trying to figure out if I have points that make for example a square: * * * * and let's say I know the center of this square. I want a formula that will make it for eample twice its size but from the center * * * * * * * * Therefore the new shape is twice as la...

Point in polygon OR point on polygon using LINQ

As noted in an earlier question, How to Zip enumerable with itself, I am working on some math algorithms based on lists of points. I am currently working on point in polygon. I have the code for how to do that and have found several good references here on SO, such as this link Hit test. So, I can figure out whether or not a point is ...

Generate 2D cross-section polygon from 3D mesh

I'm writing a game which uses 3D models to draw a scene (top-down orthographic projection), but a 2D physics engine to calculate response to collisions, etc. I have a few 3D assets for which I'd like to be able to automatically generate a hitbox by 'slicing' the 3D mesh with the X-Y plane and creating a polygon from the resultant edges. ...

Two parallel line segments intersection

I know there are many algorithms to verify whether two line segments are intersected. The line segments I'm talking about are length line constructed by 2 end points. But once they encountered parallel condition, they just tell the user a big "No" and pretend there is no overlap, share end point, or end point collusion. I know I can c...

Reconstructing simple 3d enviroment(room) from photo

I have photo of a room with three walls and floor/ceiling or both. I am trying to reconstruct this room in 3d asking user for minimal input. Right now I use 8 points defined by user, angles of left and right wall(they can be quite different from 90) and one size "InLeftBottom-InRightBottom"(I need to have real size of this room for later...

Generating a beveled edge for a 2D polygon

I'm trying to programmatically generate beveled edges for geometric polygons. For example, given an array of 4 vertices defining a square, I want to generate something like this. But computing the vertices of the inner shape is baffling me. Simply creating a copy of the original shape and then scaling it down will not produce the desire...

Merge overlapping triangles into a polygon

I've got a bunch of overlapping triangles from a 3D model projected into a 2D plane. I need to merge each island of touching triangles into a closed, non-convex polygon. The resultant polygons shouldn't have any holes in them (since the source data doesn't). Many of the source triangles share (floating point identical) edges with other...