• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 圖形圖像教程 > 詳細頁面

        帶節點曲線,鼠標可拖動節點調整曲線,類似Photoshop

        帶節點曲線,鼠標可拖動節點調整曲線,類似Photoshop

        更新時間:2025-09-20 文章作者:未知 信息來源:網絡 閱讀次數:

        Adobe Photoshop,簡稱“PS”,是由Adobe Systems開發和發行的圖像處理軟件。Photoshop主要處理以像素所構成的數字圖像。使用其眾多的編修與繪圖工具,可以有效地進行圖片...
        Adobe Photoshop,簡稱“PS”,是由Adobe Systems開發和發行的圖像處理軟件。Photoshop主要處理以像素所構成的數字圖像。使用其眾多的編修與繪圖工具,可以有效地進行圖片編輯工作。ps有很多功能,在圖像、圖形、文字、視頻、出版等各方面都有涉及。
        Photoshop中比較常用的一個功能就是曲線調整,如圖

        帶節點曲線,鼠標可拖動節點調整曲線,類似Photoshop

        通過鼠標添加、刪除、拖動曲線節點,這樣即可調整圖像參數。這個功能就其思路來說(這里只考慮曲線本身,數據存儲等不在此列),是比較簡單的:

        1. 曲線由一組Point表示節點

        2. 鼠標移動節點實際是修改單個Point

        3. 插入刪除Point

        4. 一個節點是一個手柄Handle,就是一個小方塊

        5. 在Paint里畫出一條經過所有節點的曲線DrawCurve

        6. 隨便畫個十字準星表示當前節點

        7. 鼠標按下,判斷是否在某個已有節點里,如果有,標記之,否則添加新節點

        8. 鼠標按下且移動,如果已有節點,則節點坐標為鼠標坐標

        9. 刷新畫圖

        完成后的程序操作演示(動畫):

        帶節點曲線,鼠標可拖動節點調整曲線,類似Photoshop

        下面是部分示例代碼:

        節點:


         List<Point> points;


        繪制節點手柄:

        Rectangle getHandle(Point p)
        {
            Rectangle rect = new Rectangle(
                p.X - 3,
                p.Y - 3,
                6,
                6);
            return rect;
        }
        判斷某點是否位于手柄區域:
        bool isHandle(Point p)
        {
            foreach (Point pt in points)
            {
                if (isInside(p, getHandle(pt)))
                {
                    downIndex = points.IndexOf(pt);
                    downPoint = pt;
                    current = pt;
                    return true;
                }
            }
            return false;
        }
        注意這個部分可以適當放大一下判斷區域,這樣便于鼠標操作(手柄太小,不易點擊)。

        繪制手柄:

        void drawHandle(Graphics g, Point p)
        {
            if (points.IndexOf(p) == downIndex)
                g.FillRectangle(
                    Brushes.Black,
                    getHandle(p));
            else
                g.DrawRectangle(
                    Pens.Black,
                    getHandle(p));
        }

        繪制曲線:

         void drawCurve(Graphics g)
         {
             g.DrawCurve(Pens.Black, points.ToArray());
         }

        曲線繪制采用了Graphics類的基數樣條繪制方法,默認張力0.5。

        繪制十字定位線(輔助功能):

        void drawCrosshair(Graphics g, Point p)
        {
            g.DrawLine(
                Pens.Gray,
                0, p.Y,
                clientRect.Width,
                p.Y);
            g.DrawLine(
                Pens.Gray,
                p.X,
                0,
                p.X,
                clientRect.Height);
        }

        鼠標拖動:

        protected override void OnMouseMove(MouseEventArgs e)
        {
            mousePoint = e.Location;
            if (mouseDown)
            {
                if (Current != null)
                {
                    Current = mousePoint;
                }
                Refresh();
            }
        }

        更多帶節點曲線,鼠標可拖動節點調整曲線,類似Photoshop相關文章請關注PHP中文網!


        Photoshop默認保存的文件格式,可以保留所有有圖層、色版、通道、蒙版、路徑、未柵格化文字以及圖層樣式等。

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 中文字幕视频免费| 中文字幕在线免费| 亚洲国产a级视频| 麻豆成人精品国产免费| 伊伊人成亚洲综合人网7777| 久久青青草原亚洲av无码| 美女尿口扒开图片免费| 免费二级毛片免费完整视频| 豆国产96在线|亚洲| 国产一卡二卡≡卡四卡免费乱码 | 亚洲日本乱码在线观看| xxxx日本在线播放免费不卡| 久久久青草青青国产亚洲免观| 国产精品免费久久久久影院| 8x网站免费入口在线观看| 91在线亚洲精品专区| 免费在线看v网址| 亚洲成熟丰满熟妇高潮XXXXX| 亚洲国产精品视频| 两性色午夜视频免费播放| 国产免费怕怕免费视频观看| 成人在线免费视频| 韩国日本好看电影免费看| 黄色a级片免费看| 国产AV无码专区亚洲AVJULIA| 最近中文字幕国语免费完整 | 亚洲色四在线视频观看| 4虎永免费最新永久免费地址| 亚洲精品无码一区二区| 亚洲乱码中文字幕综合234| 在线观看特色大片免费网站| 四虎永久免费影院在线| 久青草视频97国内免费影视| 亚洲综合免费视频| 男人的天堂亚洲一区二区三区 | 日韩免费视频在线观看| 国产精品极品美女自在线观看免费| 无码久久精品国产亚洲Av影片| 大学生一级毛片免费看| 国产成人高清精品免费观看| 亚洲欧洲国产成人精品|