<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>Comments on: </title>
	<atom:link href="https://mm.soldat.pl/development-log/339/feed" rel="self" type="application/rss+xml" />
	<link>https://mm.soldat.pl/development-log/339</link>
	<description>Michał Marcinkowski&#039;s: Gamedev Log &#38; Articles</description>
	<lastBuildDate>Tue, 24 Mar 2026 04:51:11 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.39</generator>
	<item>
		<title>By: Sina Puleo</title>
		<link>https://mm.soldat.pl/development-log/339/comment-page-1#comment-175600</link>
		<dc:creator><![CDATA[Sina Puleo]]></dc:creator>
		<pubDate>Fri, 01 Oct 2010 14:35:19 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=339#comment-175600</guid>
		<description><![CDATA[And still others will point to all the diet and exercise programs that work temporarily for most people, long term for some people and not at all for others. You have to follow the suggested dose provided into the insert of the product.]]></description>
		<content:encoded><![CDATA[<p>And still others will point to all the diet and exercise programs that work temporarily for most people, long term for some people and not at all for others. You have to follow the suggested dose provided into the insert of the product.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Snow</title>
		<link>https://mm.soldat.pl/development-log/339/comment-page-1#comment-94353</link>
		<dc:creator><![CDATA[Snow]]></dc:creator>
		<pubDate>Wed, 10 Jun 2009 15:11:54 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=339#comment-94353</guid>
		<description><![CDATA[Interesting way to do it. I figured you would solve it on your own. Congrats. Too bad I couldn&#039;t help, but, my method is still slower anyway (and I still have a lot of learning programming to do and I didn&#039;t really post up any code or anything also). 

Most likely the reason that all the algorithms out there did not satisfy your need, was simply because they are all probably designed to solve for all outer most points in infinite space and not finite space. 

Anyway good job.]]></description>
		<content:encoded><![CDATA[<p>Interesting way to do it. I figured you would solve it on your own. Congrats. Too bad I couldn&#8217;t help, but, my method is still slower anyway (and I still have a lot of learning programming to do and I didn&#8217;t really post up any code or anything also). </p>
<p>Most likely the reason that all the algorithms out there did not satisfy your need, was simply because they are all probably designed to solve for all outer most points in infinite space and not finite space. </p>
<p>Anyway good job.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MM</title>
		<link>https://mm.soldat.pl/development-log/339/comment-page-1#comment-94336</link>
		<dc:creator><![CDATA[MM]]></dc:creator>
		<pubDate>Wed, 10 Jun 2009 11:45:16 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=339#comment-94336</guid>
		<description><![CDATA[Solved the problem. On my own. Every algorithm on the net did not satisfy me.

My algoruthm is called quick quick hull and it has max 8 vertices. 
The thing you do is check for the right-most points, from that select the highest and lowest. Then check for bottom-most points, from that select the left-most and right most and so on. If they do not duplicate you&#039;ll end up with max 8 points with a near perfect approximation for my needs.]]></description>
		<content:encoded><![CDATA[<p>Solved the problem. On my own. Every algorithm on the net did not satisfy me.</p>
<p>My algoruthm is called quick quick hull and it has max 8 vertices.<br />
The thing you do is check for the right-most points, from that select the highest and lowest. Then check for bottom-most points, from that select the left-most and right most and so on. If they do not duplicate you&#8217;ll end up with max 8 points with a near perfect approximation for my needs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: USB_MAN_2.0</title>
		<link>https://mm.soldat.pl/development-log/339/comment-page-1#comment-94256</link>
		<dc:creator><![CDATA[USB_MAN_2.0]]></dc:creator>
		<pubDate>Tue, 09 Jun 2009 08:25:17 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=339#comment-94256</guid>
		<description><![CDATA[hello]]></description>
		<content:encoded><![CDATA[<p>hello</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Snow</title>
		<link>https://mm.soldat.pl/development-log/339/comment-page-1#comment-94250</link>
		<dc:creator><![CDATA[Snow]]></dc:creator>
		<pubDate>Tue, 09 Jun 2009 05:52:14 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=339#comment-94250</guid>
		<description><![CDATA[Hey Michal,
Sorry for promising to help and then not be able to... much. I&#039;m so swamped at work, I&#039;m putting in long weeks and barely even have enough time to check my work email. 

What may be the best attempt at this, is to use the gift-wrapping algorithm. There are plenty of examples in C++ and C. Then to solve for 5 points (Dark Avenger is in the right direction.. sort of :P):

Supposing, you use an algorithm in which you can store all the found angles and total sum of angles in an array, find the 5 angles that are the least obtuse to more acute. In all cases, 3 will be desirable points. The exception is 2 or more points found with the exact same angle that satisfy the search. We&#039;ll get to fixing that. 

Store these points. 

Two things can now be done. Using a simpler form of gift-wrapping, you could create a new convex hull based on the 5 points and omit and destroy all the extra points left over. Otherwise, it may be possible to blindly plot a line to the next neighbor that satisfies the search and plot a line, within the existing hull, then destroy the old lines and points.

In such a case that 2 or more satisfying points have the same angle, store all of the equal points along with the rest. Let&#039;s say we have 6 points for simple sake. Create a new hull, based on the 6 lines. The best way to get rid of the 6th point would probably be distance to the neighbors on either sides. Measure the distance of both identical points to their neighbor points on either side. Destroy the identical point that has the shorter distance to its neighbor. Plot a new line, from the left over point to that neighbor. 

If I should be able to scrape some more time together this week, I may finally be able to put up some code, pseudo-code or pseudo-pseudo code. 

Basically what I have in mind is being able to find and plot the first line, then starting with that line, using a short block that loops with a single equation or short algorithm where n=angle of the 3rd point to the last line. Based on the angle of the last line compared, the program starts sweeping from 180 degrees and inward. So every time, the equation or code runs, it will plot a new line, solve for the next point and check for next greatest angle. A second function within that loop will run and calling on the array that holds the points and angles, checks the total sum of angles/number of points based on 180(n-2). 

It&#039;s still a blind way of finding all the points, but should run very quickly. The difficulty in the logic is that, if a new point is to be discovered by sweeping inward 180 and down, scanning parallel to the last line may still yield many points. Obviously the furthest point with the most obtuse angle toward the line is the desired point, however, it must still be possible to omit some points and areas within the equation without having to waste time finding them and ruling them out. This is where the logic is tricky, in order to do it in the shortest amount of time. 

Anyway, bedtime. As always good luck and keep up the good work. Things are looking good.]]></description>
		<content:encoded><![CDATA[<p>Hey Michal,<br />
Sorry for promising to help and then not be able to&#8230; much. I&#8217;m so swamped at work, I&#8217;m putting in long weeks and barely even have enough time to check my work email. </p>
<p>What may be the best attempt at this, is to use the gift-wrapping algorithm. There are plenty of examples in C++ and C. Then to solve for 5 points (Dark Avenger is in the right direction.. sort of :P):</p>
<p>Supposing, you use an algorithm in which you can store all the found angles and total sum of angles in an array, find the 5 angles that are the least obtuse to more acute. In all cases, 3 will be desirable points. The exception is 2 or more points found with the exact same angle that satisfy the search. We&#8217;ll get to fixing that. </p>
<p>Store these points. </p>
<p>Two things can now be done. Using a simpler form of gift-wrapping, you could create a new convex hull based on the 5 points and omit and destroy all the extra points left over. Otherwise, it may be possible to blindly plot a line to the next neighbor that satisfies the search and plot a line, within the existing hull, then destroy the old lines and points.</p>
<p>In such a case that 2 or more satisfying points have the same angle, store all of the equal points along with the rest. Let&#8217;s say we have 6 points for simple sake. Create a new hull, based on the 6 lines. The best way to get rid of the 6th point would probably be distance to the neighbors on either sides. Measure the distance of both identical points to their neighbor points on either side. Destroy the identical point that has the shorter distance to its neighbor. Plot a new line, from the left over point to that neighbor. </p>
<p>If I should be able to scrape some more time together this week, I may finally be able to put up some code, pseudo-code or pseudo-pseudo code. </p>
<p>Basically what I have in mind is being able to find and plot the first line, then starting with that line, using a short block that loops with a single equation or short algorithm where n=angle of the 3rd point to the last line. Based on the angle of the last line compared, the program starts sweeping from 180 degrees and inward. So every time, the equation or code runs, it will plot a new line, solve for the next point and check for next greatest angle. A second function within that loop will run and calling on the array that holds the points and angles, checks the total sum of angles/number of points based on 180(n-2). </p>
<p>It&#8217;s still a blind way of finding all the points, but should run very quickly. The difficulty in the logic is that, if a new point is to be discovered by sweeping inward 180 and down, scanning parallel to the last line may still yield many points. Obviously the furthest point with the most obtuse angle toward the line is the desired point, however, it must still be possible to omit some points and areas within the equation without having to waste time finding them and ruling them out. This is where the logic is tricky, in order to do it in the shortest amount of time. </p>
<p>Anyway, bedtime. As always good luck and keep up the good work. Things are looking good.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DARK AVENGER</title>
		<link>https://mm.soldat.pl/development-log/339/comment-page-1#comment-94209</link>
		<dc:creator><![CDATA[DARK AVENGER]]></dc:creator>
		<pubDate>Mon, 08 Jun 2009 20:06:27 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=339#comment-94209</guid>
		<description><![CDATA[then do this:
calculate the exact convex hull with a classical algorithm
now you need to select 5 points of the exact convex hull.
we already know 4 of them , one is the upper point , one is the leftmost one , one is the lowest one and one is the rightmost one,
now we have to choose just one more point !
let that be an arbitrary one of the convex hull already calculated that is not one of the 4 ones mentioned above.
I&#039;m sure you can find variations on this which will be faster.
maybe calculating the convex hull isn&#039;t even needed.]]></description>
		<content:encoded><![CDATA[<p>then do this:<br />
calculate the exact convex hull with a classical algorithm<br />
now you need to select 5 points of the exact convex hull.<br />
we already know 4 of them , one is the upper point , one is the leftmost one , one is the lowest one and one is the rightmost one,<br />
now we have to choose just one more point !<br />
let that be an arbitrary one of the convex hull already calculated that is not one of the 4 ones mentioned above.<br />
I&#8217;m sure you can find variations on this which will be faster.<br />
maybe calculating the convex hull isn&#8217;t even needed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MM</title>
		<link>https://mm.soldat.pl/development-log/339/comment-page-1#comment-94203</link>
		<dc:creator><![CDATA[MM]]></dc:creator>
		<pubDate>Mon, 08 Jun 2009 18:10:26 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=339#comment-94203</guid>
		<description><![CDATA[&lt;i&gt;Why do you need an approximation ?&lt;/i&gt;
Cause I need to limit the amount of points in the final polygon. Max 5.]]></description>
		<content:encoded><![CDATA[<p><i>Why do you need an approximation ?</i><br />
Cause I need to limit the amount of points in the final polygon. Max 5.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Makron666</title>
		<link>https://mm.soldat.pl/development-log/339/comment-page-1#comment-94136</link>
		<dc:creator><![CDATA[Makron666]]></dc:creator>
		<pubDate>Sun, 07 Jun 2009 10:52:58 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=339#comment-94136</guid>
		<description><![CDATA[I looked on google and found this, but u have too probably.

http://www.pms.ifi.lmu.de/lehre/compgeometry/Gosper/convex_hull/convex_hull.html]]></description>
		<content:encoded><![CDATA[<p>I looked on google and found this, but u have too probably.</p>
<p><a href="http://www.pms.ifi.lmu.de/lehre/compgeometry/Gosper/convex_hull/convex_hull.html" rel="nofollow">http://www.pms.ifi.lmu.de/lehre/compgeometry/Gosper/convex_hull/convex_hull.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DARK AVENGER</title>
		<link>https://mm.soldat.pl/development-log/339/comment-page-1#comment-94043</link>
		<dc:creator><![CDATA[DARK AVENGER]]></dc:creator>
		<pubDate>Fri, 05 Jun 2009 15:05:01 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=339#comment-94043</guid>
		<description><![CDATA[But Michal , usually you go for an approximation algorithm if there are constraints , but here there are no constraints ... there are fast algorithms for solving THE PROBLEM , not giving an approximation.
Why do you need an approximation ?]]></description>
		<content:encoded><![CDATA[<p>But Michal , usually you go for an approximation algorithm if there are constraints , but here there are no constraints &#8230; there are fast algorithms for solving THE PROBLEM , not giving an approximation.<br />
Why do you need an approximation ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DARK AVENGER</title>
		<link>https://mm.soldat.pl/development-log/339/comment-page-1#comment-94042</link>
		<dc:creator><![CDATA[DARK AVENGER]]></dc:creator>
		<pubDate>Fri, 05 Jun 2009 15:02:24 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=339#comment-94042</guid>
		<description><![CDATA[Michal , define a metric called &quot;error&quot; , you need to know what error your approximation stays in. Any rigorously written algorithm has this metric , if it&#039;s an approximation.
Make test-cases , write code to visualize the true solution , your solution and print out the error metric.

Also , if necessary , here&#039;s someone who&#039;s pretty well-known to work on these kind of problems , if you&#039;re really stuck on this talk to him http://www.ics.uci.edu/~eppstein/

Good luck Michal , I wanna play the game , do your best !]]></description>
		<content:encoded><![CDATA[<p>Michal , define a metric called &#8220;error&#8221; , you need to know what error your approximation stays in. Any rigorously written algorithm has this metric , if it&#8217;s an approximation.<br />
Make test-cases , write code to visualize the true solution , your solution and print out the error metric.</p>
<p>Also , if necessary , here&#8217;s someone who&#8217;s pretty well-known to work on these kind of problems , if you&#8217;re really stuck on this talk to him <a href="http://www.ics.uci.edu/~eppstein/" rel="nofollow">http://www.ics.uci.edu/~eppstein/</a></p>
<p>Good luck Michal , I wanna play the game , do your best !</p>
]]></content:encoded>
	</item>
</channel>
</rss>
