<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ATEGPU &#187; edge function</title>
	<atom:link href="http://www.ategpu.com/tag/edge-function/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ategpu.com</link>
	<description>Embedded GPU With OpenGL ES API</description>
	<lastBuildDate>Thu, 24 Nov 2011 05:46:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>判断一个点是否在 2D 三角形内</title>
		<link>http://www.ategpu.com/2009/09/29/%e5%88%a4%e6%96%ad%e4%b8%80%e4%b8%aa%e7%82%b9%e6%98%af%e5%90%a6%e5%9c%a8-2d-%e4%b8%89%e8%a7%92%e5%bd%a2%e5%86%85.html</link>
		<comments>http://www.ategpu.com/2009/09/29/%e5%88%a4%e6%96%ad%e4%b8%80%e4%b8%aa%e7%82%b9%e6%98%af%e5%90%a6%e5%9c%a8-2d-%e4%b8%89%e8%a7%92%e5%bd%a2%e5%86%85.html#comments</comments>
		<pubDate>Tue, 29 Sep 2009 06:30:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[edge function]]></category>
		<category><![CDATA[triangle]]></category>

		<guid isPermaLink="false">http://www.ategpu.com/?p=406</guid>
		<description><![CDATA[
这是我拿到公司 offer 时美国老大给我的面试题，对于当时我这种文盲来说，还是杀死了不少脑细胞。最近闲来无事（嗯。。。被危机了），又拿出来琢磨了一下各算法。
设一在在 2D 空间中的三角形 △ABC ，三个顶点向量 A(ax, ay)、B(bx, by)、C(cx, cy)，三条有向边 AB、BC、CA，有一点 P(px, py)。

叉乘法
原理：
沿 △ABC 各有向边按一定方向走（顺时针或逆时针），判断点 P 是否在该边的某侧（右侧或左侧），若点 P 在三条边的同侧，则点 P 在 △ABC 内。
实现：
分别计算向量 AB、BC、CA 与向量 AP、BP、CP 的向量积（叉乘），若三个结果均同号（正或负，为零表示 P 在边上），则可得点 P 在 △ABC 内。其中AB = B &#8211; A，AB×AP = AB.x*AP.y &#8211; AB.y*AP.x。
该算法只需要做 3 次叉乘（6 次普通数值乘法），效率高，且没有浮点误差。
这是我当时面试想的算法，Azure 等人也用的类似算法。
面积法
原理：
若点 P 在 △ABC 内，则 △ABP、△BCP、△CAP 的面积之和应等于 △ABC 的面积。
实现：
利用两个向量叉积的几何意义为该两个向量所围三角形面积的 2 倍，分别计算 AB×BP、BC×CP、CA×AP、AB×BC，若 [...]]]></description>
		<wfw:commentRss>http://www.ategpu.com/2009/09/29/%e5%88%a4%e6%96%ad%e4%b8%80%e4%b8%aa%e7%82%b9%e6%98%af%e5%90%a6%e5%9c%a8-2d-%e4%b8%89%e8%a7%92%e5%bd%a2%e5%86%85.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

