如何去實作類似photoshop的圖層功能的管理機制 |
答題得分者是:暗黑破壞神
|
markov
中階會員 發表:55 回覆:135 積分:53 註冊:2003-12-01 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
markov
中階會員 發表:55 回覆:135 積分:53 註冊:2003-12-01 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
markov
中階會員 發表:55 回覆:135 積分:53 註冊:2003-12-01 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
不是回答過你了嗎?
如果你的圖層是這樣。 圖層1 圖層2 圖層3 那你要給USER看到的是這三個加起來的結果。 你不是回答你知道嗎? 那換個角度來看。當 user 要動到變成 2,1,3 的順序時。 你不也是依原來的方式來運算而已嗎? ===================引 用 文 章=================== 或許我應該這樣子問, 我的程式是設計環境 當使用者在用我提供給他的元件在進行設計時 使用者可能會移到最上層或往下一層 那我應該要如何同步修改其他元件的上下層關係 |
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
我想你的回答他永遠聽不懂
由他一再問同樣的問題的狀況,可以想見他的設計能力,就是那樣了 不然也不會用 3 的元件,我的天阿,要是使用者開 20 個圖層,豈不要用 20 的元件 用元件,會有效能的問題,尤其是繪圖的圖層這種程式,最好不要用,可以的話自己畫,某部分自己呼叫指令集,這樣才會快 他還不懂什麼叫「山不轉路轉」 電腦麼,就是你說什麼它做什麼 一個元件就可以做所有的事了,所以他還停留在堆積木的階段,而且是重複一直堆到爛的那種 還有很大的進步空間,會不會進步,就看他自己的努力了 很多事情,是可以一蹴可及,但偏偏設計能力,就是不行 還見建議他去看資料結構的書,與設計概念的書先吧 |
markov
中階會員 發表:55 回覆:135 積分:53 註冊:2003-12-01 發送簡訊給我 |
我知道暗黑破壞神及syntax所指的是利用繪圖技巧在畫面上營造出圖層的效果
但我不是要問這個,這個技術我懂, 我之所以會用這麼多的元件,是因為我是開發一個設計環境,我提供使用者自行拉我所提供的元件在畫面上做控制或其他功能 所以使用者要拉幾個元件,我並不知道,且我所提供給使用者的元件數也不只一種,而我的程式也是設計成元件個數是無上限的, 所以我不可能用一個元件來做所有的事,而且我要做的事也不是繪圖(或許各位高手有不同的看法) 我所說的圖層或許不是像photoshop的功能,而是元件之間的堆疊管理 元件與元件之間有可能部份重疊,就像在bcb的form上一樣,所以我所提供給使用者的元件就有可能部份重疊, 我要問的是當某一個我所提供給使用者的元件選取往上一層,或往下一層時,自己這個元件當然可以往上一層或往下一層, 被異動的元件與相互重疊的元件之間的順序就必須一起修正 目前我想到的方法就是對所有在我提供給使用者的設計環境中的我所提供給使用者的元件進行scan,才能知道那些元件需要一起被修正 但我覺得這樣子太笨了,所以我才會問有沒有好方法 還是謝謝大家的回答, 如果大家覺得己經回答了,那也沒關係,我自己再想想看 可能我的程式功力真的很爛,在此致歉,我的表達能力也不好,不好意思,擔誤大家的時間 |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
基本概念上就如前面大大所言沒錯啊,遊戲軟體的圖層概念也是這樣
在背景著繪 圖層1 圖層2 圖層3 合併到記憶體的緩衝區,然後一次輸出到顯像卡 這就是所謂DoubleBuffer ...flip 不過您要做到執行期拖拉元件擺放它的Z-Order次序,國外應該有現成的元件 http://www.greatis.com/delphicb/formdes/ |
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
markov
中階會員 發表:55 回覆:135 積分:53 註冊:2003-12-01 發送簡訊給我 |
我有去看TFormDesigner的demo
我的程式現在就是正在開發類似TFormDesigner的功能 但我不需要使用TFormDesigner 我就是要run-time去改變z-order的順序 而非繪圖 我也知道各位講的繪圖方式是對的 我也知道要用mask完成各圖形的推疊 我也知道繪圖用元件較慢, 但我要的功能不是要繪圖之間的堆疊 此外,我所提供的設計環境有開關,有儀表,有表格,有各種元件 全部改成非元件,我怎麼run time去供使用者產生??rum time去畫表格??rum time去畫儀表?? 太累了 我現在就是要儀表,表格,開關之間的元件堆疊管理機制 對不起各位,雖然大家都認為已經講了正確答案, 但我還是腦袋沒轉過來,繪圖與我要的功能之間的關係 謝謝各位的指教,我會再加強我的程式能力,不好意思擔誤大家時間 |
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
---> 我現在就是要儀表,表格,開關之間的元件堆疊管理機制
這樣就簡單了,你想怎麼管理,就怎麼管理,依據你心裡想的,化成邏輯,變成程式 就這樣囉!你不試試,怎知道自己不行?一味要求別人給答案,不可能給你答案一輩子 你要自己做,最少你有試,這樣才有誠意,別人才會跟你說哪裡做的好,哪裡做好,這樣你才會進步 你連基本的嘗試都沒有,想幫也很難,幫的話就變成是我們的工作了,而不是你的 你以為回答問題的人都是只有輸出嗎?沒有來至提問者的回饋,就沒有學習,沒有學習,就沒動力回答 而回饋不是「你好神、你好棒」之類的廢話,回饋是能夠從問題中學習成長,不是只有你想變厲害! 最好的狀況是能變成一項討論,而不是像你這樣,連東西都沒有~ 你想進步,就動手做吧!這裡所有人都會給你意見,但只有你能決定那個對你最好,但前提,你要先動手做 |
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
so what?
我再用更簡單的方式來反問你。 什麼叫元件。什麼叫 button? 它不過是在一個方框中的一張”圖” 你要去偵測你的 mouse 是不是在這個方框中。 你要去偵測目前 mouse click 時。是指在那個位置。 那個位置是屬於那個”元件”的範圍。 而所有的元件,都只有圖片。x1,y1,x2,y2 來標出來。 會有作用的是你在 x1,y1,x2,y2 這個範圍內的動作要用呼叫那個函數來處理。 會有重疊,我也知道。 這時候你要自己去排定 z order,你的視覺是由上到下。 你的 x1,y1,x2,y2 的比對就是由上一層一直比到最下層。 如果這個 mouse 座標 沒在任一個"元件" x1, y1, x2,y2 的範圍內 那就比它的下一層。 runtime 畫東西。也不過是像這樣處理而已。 不然你以為程式是怎麼寫的? ===================引 用 文 章=================== 我有去看TFormDesigner的demo 我的程式現在就是正在開發類似TFormDesigner的功能 但我不需要使用TFormDesigner 我就是要run-time去改變z-order的順序 而非繪圖 我也知道各位講的繪圖方式是對的 我也知道要用mask完成各圖形的推疊 我也知道繪圖用元件較慢, 但我要的功能不是要繪圖之間的堆疊 此外,我所提供的設計環境有開關,有儀表,有表格,有各種元件 全部改成非元件,我怎麼run time去供使用者產生??rum time去畫表格??rum time去畫儀表?? 太累了 我現在就是要儀表,表格,開關之間的元件堆疊管理機制 對不起各位,雖然大家都認為已經講了正確答案, 但我還是腦袋沒轉過來,繪圖與我要的功能之間的關係 謝謝各位的指教,我會再加強我的程式能力,不好意思擔誤大家時間 |
markov
中階會員 發表:55 回覆:135 積分:53 註冊:2003-12-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |