三角形填充演算法

2021-09-25 23:35:59 字數 1522 閱讀 3187

這個演算法的精妙之處在於把求斜率的部分改為了插值計算,解決了浮點數的問題。整個部分並沒有直接去求直線的斜率。

能用**解釋的盡量不bb,見**:

private function draw********easy(p1:point, p2:point, p3:point, color:uint = 0):void

< p3.y

if(p1.y > p3.y)

< p3.y

if(p2.y > p3.y)

trace(p1, p2, p3);

this.pointcontianer.graphics.beginfill(0xff0000, 1);

this.pointcontianer.graphics.drawcircle(p1.x, p1.y, 2);

this.pointcontianer.graphics.drawcircle(p2.x, p2.y, 2);

this.pointcontianer.graphics.drawcircle(p3.x, p3.y, 2);

this.pointcontianer.graphics.endfill();

//2.判斷p2在p1p3的那一側, 只比較x值是不夠的

//可以用直線的一般方程來判斷, <0 在左側, >0在右側. 可用 y-x=0 y-2x=0 y-0.5x=0 這三條直線來檢測

//已知兩點可求得直線的一般方程式, ax + by + c = 0, (x1, y1), (x2, y2) 先用斜截式考慮飛0情況展開, 再考慮0的情況, 可求得

// a = y2 - y1, b = x1 - x2, c = x2*y1 - x1*y2

// p1 => (x1, y1) , p3 => (x2, y2) 因為斜率是按照 p1計算的

三角形填充

給定三角形的三個頂點,填充三角形,想來想去,竟然找不到這樣的軟體工具。就連matlab都沒有提供這樣的繪圖功能。我有一組三角形的頂點座標,想判斷這些三角形是否可以完全拼合在一起。如果乙個乙個地去檢查每個三角形的頂點座標,那真不是人幹的活。求人不如求已,乾脆自己寫乙個windows程式吧,利用gdi來...

AS3 三角形填充

讓點按照 p1 p2 p3 的y值從大到小排序 var tempx number var tempy number if y1 y2 if y1 y3 if y2 y3 如果所有定點都在裁剪區域外則不能繪圖 if y3 clip.bottom y1 clip.top x1 clip.left x2 ...

經典演算法 (三)帕斯卡三角形(楊輝三角形)

楊輝三角,是二項式係數在三角形中的一種幾何排列。在歐洲,這個表叫做帕斯卡三角形。帕斯卡 1623 1662 是在1654年發現這一規律的,比楊輝要遲393年,比賈憲遲600年。簡介 楊輝三角,是二項式係數在三角形中的一種幾何排列。在歐洲,這個表叫做帕斯卡三角形。帕斯卡 1623 1662 是在165...