如何求得某個角度的線上所有像素點 |
尚未結案
|
kamico
一般會員 發表:2 回覆:2 積分:0 註冊:2004-12-04 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
kamico 您好: 這個問題的求解原理:其實就是把畫直線演算法中間算出的座標存起來,就是您要的答案。 您所畫的圖,X-Y方向似乎與一般不同,所以相關的座標修改,請您自行轉換。
getLine(.)程式傳回值為該線段的長度(點數),points則是存上述所有點的座標值,由於是以動態配置記憶體方式產生,所以呼叫使用後,記得釋放所配置的記憶體。 一個修改自下列連結的程式片段,請參考修改:
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=53803
int getLine(int * &points, int xstart, int ystart, int xend, int yend) { int i; int x, y, dx, dy, e, size; int signx, signy, change, temp; // get each pixel's coordinates on the line (xstart, ystart)-(xend, yend) signx=signy=1; if ( xendRichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### |
kamico
一般會員 發表:2 回覆:2 積分:0 註冊:2004-12-04 發送簡訊給我 |
|
kamico
一般會員 發表:2 回覆:2 積分:0 註冊:2004-12-04 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
引言: richtop大哥您好: 程式碼我試過了,的確可行,執行的結果會出現兩個訊息視窗 想請問您第一個出現的意思代表什麼呢? 當時測試時看資料用的,可以略去。 第二個訊息視窗所顯示的是線上的所有座標點嗎? 您的做法跟程式我還看不太懂,現在還在努力了解中 那如果說將夾角換成任意角度是否都可行呢? (ex:31度、32度...) 是所有的座標點。 理論上我是用數學平面座標去算的,因為螢幕上的y座標會差一個負號,但我在畫圖時已修正過來了。所以您只要以x軸為零度,逆時針為正即可算出確的座標點來。或者您可自行測試幾個特殊角度看看。 謝謝您的幫忙RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### 發表人 - richtop 於 2004/12/16 02:49:11 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |