廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 5175 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
troy_liaw106
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[Basic][求助] vb6 如何畫多邊形shape
如題,可以的 ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容



獻花 x0 回到頂端 [樓 主] From:台灣中華電信 | Posted:2011-02-08 22:29 |
ebolaman 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎

級別: 副版主 該用戶目前不上站
版區: 程式設計
推文 x38 鮮花 x458
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

如果是 中空的 Shape,直接用 VB6 內建的函數 : PSet, Line 即可達成

不知道你的意思是 頂點與線 上色,還是要連點連起來的多邊形內部也要上色


如果 內部需要上色,可以用幾個 API 來達成

網路查了一下才發現有許多種方法可以達成,甚至有人都做好了模組可以直接套用

我以別人的程式碼為基礎,作了一個 "畫出任意 正多邊形" 的專案,可以參考看看


主要是參考 http://tw.knowledge.yahoo.com/quest...d=1610020405915 的回答內容

只是座標方面 (P().X = ....  P().Y = .....) 要修改一下




這是我做的一個小程式:






主要的程式碼如下: (Sub DrawRegularShape)

DrawRegularShape 的參數: 圖片物件, 幾正邊形, 圓形的長度, 初始的角度, 圓形中心的 X, 圓形中心的 Y, 顏色


複製程式
Public Sub DrawRegularShape(ByRef Pic As Object, ByVal EdgesCt As Long, ByVal CircleR As Long, ByVal IntAngle As Double, _
  ByVal CenterX As Long, ByVal CenterY As Long, ByVal FilledColor As Long)


    Dim P(100) As POINTAPI, hBrush As Long, hRgn As Long
    Dim i As Long
    Dim tempX As Long, tempY As Long, Angle As Double
    
    
    'Convert Angle Into 'Rad'
    IntAngle = IntAngle / 180 * Pi
    
    
    '----------- Specify Points ----------
    
    For i = 0 To EdgesCt - 1

      Angle = ((Pi * 2 / EdgesCt) * i) + IntAngle + (Pi / 2)
      tempX = CenterX + (CircleR * Cos(Angle))
      tempY = CenterY - (CircleR * Sin(Angle))

      P(i).X = tempX
      P(i).Y = tempY
      
'      '[Debug - Draw Pien Point]
'      Pic.DrawWidth = 3
'      Pic.PSet (tempX, tempY)

    Next i
    
    Do While i <= UBound(P)
      P(i).X = P(i - 1).X
      P(i).Y = P(i - 1).Y
      i = i + 1
    Loop

    
    '--------------------------------------
    
    hBrush = CreateSolidBrush(FilledColor)
    hRgn = CreatePolygonRgn(P(0), UBound(P), ALTERNATE)
    If hRgn Then FillRgn Pic.hdc, hRgn, hBrush
    DeleteObject hRgn
    
    
'    '[Debug - Draw Central Point]
'    Pic.DrawWidth = 5
'    Pic.PSet (CenterX, CenterY)


End Sub




這是座標的解析,如果搞不懂以上程式碼運作原理的話,看這張圖容易了解:








這是 "正" 多邊形 的示範,如果要不規則形

只需將以上的 For ... Next 區塊移除,改成 指定 座標 各是多少,或許用 文字檔來載入 等方式.....



此 VB6 專案 "Draw A Polygon" + 程式 下載:


本帖包含附件
zip Example - Draw A Polygon.rar   (2022-06-09 14:17 / 39 KB)  
說明: FileType : RAR
下載次數:15


My BOINC stats :

獻花 x1 回到頂端 [1 樓] From:台灣台灣寬頻 | Posted:2011-02-09 03:43 |
troy_liaw106
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

內部上色的部份,顏色可以調透明度嗎?


獻花 x0 回到頂端 [2 樓] From:台灣台灣碩網 | Posted:2011-02-12 08:31 |
ebolaman 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎

級別: 副版主 該用戶目前不上站
版區: 程式設計
推文 x38 鮮花 x458
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 troy_liaw106 於 2011-02-12 08:31 發表的 : 到引言文
內部上色的部份,顏色可以調透明度嗎?


有點不懂 "透明度" 的意思

是指


(1) 圖片交錯,某物件有透明度 與 其他物件重疊,混色,例如:




(2) 還是單純一個物件的透明度 ?



第一種我沒去研究,看起來似乎比較困難

第二種我作了,是利用顏色的 HSB (維基百科連結數位男女連結)  來調色




HSB 其中的 S 為 "濃度" 的意思,我發現這可以來替代 "透明度",如果我沒錯的話

HSB 與 RGB 的轉換公式是參考 http://www.easyrgb.com...p?X=MATH 的設計



這次把上次的專案稍加修改,加上能調配 HSV 的功能 (HSV 等同 HSB)

介面部分模擬 軟體:色胚子 (ColorBase) 的設計,有興趣可以去下載研究

但是有個小缺點就是,不是全部的顏色範圍都能調整,可能是 Pixel 單位的緣故吧

看這張圖大概能知道,但是我還是不了解詳細原理:






這次還加上了 "Enable Details" 的勾選,可以直接了解繪圖的原理 (長度部分單位為 Pixel)








專案的程式碼稍顯複雜,如果不知道各方的用途,請告訴我

我會再來解析



VB6 專案+程式 下載 :


本帖包含附件
zip Example - Draw A Polygon.rar   (2022-06-09 14:17 / 44 KB)  
說明: FileType : RAR ; CRC-32 : 70E4E23C
下載次數:7

此文章被評分,最近評分記錄
財富:500 (by 三仙) | 理由: ^^ 因為您的參與,讓程式設計更容易!!


My BOINC stats :

獻花 x1 回到頂端 [3 樓] From:台灣台灣寬頻 | Posted:2011-02-12 16:29 |
ebolaman 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎

級別: 副版主 該用戶目前不上站
版區: 程式設計
推文 x38 鮮花 x458
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

對了,剛才發現 有時候調配 HSV 的那三條 PictureBox 會變成完全白色

可能是 屬性 AutoRedraw 沒設成 True 吧,請改正,我懶得重新上傳


My BOINC stats :

獻花 x0 回到頂端 [4 樓] From:台灣台灣寬頻 | Posted:2011-02-12 16:35 |
troy_liaw106
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

我指的是第一個用alpha調透明度
沒關係,我有想到替代方案了
謝謝


獻花 x0 回到頂端 [5 樓] From:台灣中華電信 | Posted:2011-02-12 18:55 |
ebolaman 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎

級別: 副版主 該用戶目前不上站
版區: 程式設計
推文 x38 鮮花 x458
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

有找到 有人作好的 兩張不同圖片 不同 alpha 度 混合在一起

請參考:

http://www.a1vbcode....2829.asp


還蠻厲害的


My BOINC stats :

獻花 x0 回到頂端 [6 樓] From:台灣台灣寬頻 | Posted:2011-02-13 00:49 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.055999 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言