首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# GDI+ 繪圖實戰(一):投影與矩陣變換藝術字

     編輯:關於C語言

效果預覽

投影藝術字效果截圖

完整代碼

private void Form1_Paint(object sender, PaintEventArgs e)
{
    Graphics g = e.Graphics;
    g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
    g.SmoothingMode = SmoothingMode.AntiAlias;

    using (Font font = new Font("Times New Roman", 48))
    using (SolidBrush grayBrush = new SolidBrush(Color.Gray))
    using (SolidBrush colorBrush = new SolidBrush(Color.BlueViolet))
    {
        string text = "博客園";

        // 構建複合變換矩陣:剪切 -> 縮放 -> 平移
        Matrix matrix = new Matrix();
        matrix.Shear(-1.5f, 0.0f);   // X 方向剪切(傾斜)
        matrix.Scale(1, 0.5f);       // Y 方向壓縮 50%(投影扁平化)
        matrix.Translate(130, 88);   // 平移到目標位置

        // 繪製投影(陰影)
        g.Transform = matrix;
        g.DrawString(text, font, grayBrush, new PointF(0, 30));

        // 重置變換,繪製正常文字
        g.ResetTransform();
        g.DrawString(text, font, colorBrush, new PointF(0, 30));
    }
}

矩陣變換詳解

  1. Shear(-1.5, 0):X 方向剪切,使文字傾斜,模擬光源側照投影的幾何變形。
  2. Scale(1, 0.5):Y 軸縮放 0.5,將投影壓扁,符合透視原理(遠處投影較扁)。
  3. Translate(130, 88):將變換後的投影移動到文字下方合適位置。
  4. 變換順序至關重要:先剪切、再縮放、最後平移。改變順序會產生完全不同結果。

關鍵屬性設置

  • TextRenderingHint.ClearTypeGridFit:開啟 ClearType 亞像素渲染,文字鋒利度最高。
  • SmoothingMode.AntiAlias:幾何邊緣抗鋸齒,配合文字渲染提升整體質量。
  • SolidBrush:純色畫刷,配合 Color 結構指定 ARGB 值。

擴展應用

  • 將矩陣參數封裝為方法,支持動態調整投影角度、長度、透明度。
  • 結合 Color.FromArgb(alpha, color) 實現漸變透明投影。
  • 應用於自定義控件(如按鈕、標籤)的 OnPaint,打造統一視覺風格。

系列導航

本系列共 6 篇,依次介紹:投影、浮雕、印版、倒影、陰影、旋轉、紋理、傾斜等藝術字效果,掌握 Graphics、Matrix、Brush、Font 核心類即可舉一反三。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved