WPF中制作立体效果的文字或LOGO图形

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.****.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

较久之前,我曾写过一篇:“WPF绘制党徽(立体效果,Cool) ”的博文。有感兴趣的朋友来EMAIL问是怎么制作的?本文解决此类问题。

有时,为了美观的需要,我们可能需要在应用程序中制作一些看上去很酷的3D效果,比如下面的效果:
WPF中制作立体效果的文字或LOGO图形
这是一种立体的纯文字效果,或许你可以在网上找到相关工具自动生成图片,但如果是需要生成矢量的XAML图形文件,这样的工具少之又少。关于3D文字的问题,你可以参见大名鼎鼎的Charles Petzold在MSDN上的两篇文章“三维网格几何体”(http://msdn2.microsoft.com/zh-cn/magazine/cc163449.aspx)及“WPF 中的三维文字”(http://msdn2.microsoft.com/zh-cn/magazine/cc163349.aspx)。

更多的情况是:可能需要根据用户的不同要求,按用户提供的企业标准文字或LOGO标识来进行绘制。
比如,我在从事月历设计时,就有用户需要设计一个“福”字,他们想将之放进月历中:
WPF中制作立体效果的文字或LOGO图形
这个“福”字原来是由用户以TIFF图片文件格式提供。

上面“春”字最后生成的XAML代码(Spring.Xaml)占空间约22K,代码太长,从略。
而“福”字最终生成的XAML代码(ChineseFu.Xaml)更多,达42K。
从上面的代码可以看出,有许多东西(比如渐变颜色)是可以共用的,可以使用资源的方式,使上面的代码变得更精简,但目前尚无专业的软件工具可以做到自动完成这一过程,相信随着WPF,SilverLight及XAML的推广,上述情况会有所改观。

你可以使用各种矢量绘图软件来将图片文字矢量化,比如使用常用的Illustrator, CorelDraw, FreeHand等。我比较喜欢使用Illustrator,当然这只是个人喜好而已。你也可以使用你比较喜欢的设计工具。

如果最终想要生成XAML文件,与你的其他WPF或SilverLight程序配合,那么,你可以使用微软的Expression Blend。做这件事可能需要考验你的耐性。因为目前为此,Expression Blend的某些绘图功能还不够完善。随着时间的推移,相信它会越来越好用。

先看看我要做的初始化LOGO,这个LOGO就是使用Illustrator绘制出来的:

WPF中制作立体效果的文字或LOGO图形

它是一只酷似萝卜的可爱小鼠,我把它叫做“萝卜鼠”,是我在三年前设计的。

(1)首先进行初步的准备工作。在Illustrator中打开上述AI文件,然后按住Alt键,然后拖动整个LOGO,我这里演示的是向右下的立体效果,所以,我拖动LOGO时向左上方向作了合适的位移。按住Alt键拖动的作用是拖动的同时,复制出另一个原始图形的备份。为了做的时候不那么刺眼,同时使前景和背景图形对比明显以方便操作,所以我特地将上面一个改成橙色,而原来那个改成黑色,因为红色看得太多比较伤眼睛:)或者说眼睛比较疲劳。
得到如下效果:
WPF中制作立体效果的文字或LOGO图形

接下面,我们需要做更关键的步骤,绘制出3D效果。

(2)选中全部,然后在PathFinder面板中点击左下角的“Divide”,它的目的是使所有图形部分分离出完全独立的图形。注:如果PathFinder面板没有显示出来,你可以使用快捷键Shift+F9让它显示出来,或者在菜单Window项下拉菜单中点PathFinder子项,使其前面处理勾选状态,从而显示PathFinder面板。
此操作完成后,再按Shift + Ctrl + G,打散各图形。
结果如下:(为方便操作,我已放大显示原图)
WPF中制作立体效果的文字或LOGO图形

(3)勾出未填实的局部区域。点中左边工具箱中的Pen Tool(P),选择合适的笔刷颜色(比如红色)和笔刷宽度Stroke面板中设置(比如0.25pt)。接下来要做的就是勾出所有阴影部分并使之显得更完美。我这里仅举一小块的连接以示说明。为了更方便操作,使用Zoom Tool(Z)放大需要处理的局部图形,之后使用Pen Tool(P)勾出未填实的局部区域,同时使用Line Segment Tool连接图形,注意多边形的外边线与原图的曲线“外切”,以使阴影显得平滑自然,这将考验你的耐心并取决于你的美术欣赏水平。如下图:
WPF中制作立体效果的文字或LOGO图形

对于一些特殊的地方可能需要特殊处理,比如上图的右下部分,就使用了Line Segment Tool (/)。
然后,选中全部,使用Path Finder面板的"Divide",再Shift + Ctrl + G,打散。

(4)合并橙色部分:选中其中任意一块橙色图形,然后依次点击菜单Select -> Same -> Fill Color,这样选中了所有橙色填充的图形。再按PathFinder面板中的Shape Modes的第一个"Add to shape area"小按钮,然后点击Expand。这样,橙色的图形又成了一个完整的整体(这里也可以直接在PathFinder面板中点击下面的Merge小按钮)。但黑色部分则分别成单独的图形块。

(5)分别将应该为黑色显示的相邻部分(可能暂时显示的填充颜色为空)同时选中,然后点击"Add to shape area"小按钮,再点击Expand合并它们,如下面图a,图b所示:
WPF中制作立体效果的文字或LOGO图形
(图a)

WPF中制作立体效果的文字或LOGO图形
(图b)

(6)整体完成之后,应该类似下面的效果:
WPF中制作立体效果的文字或LOGO图形

(7)为了更具立体效果,还需要将图形具有明显“转折”的部分做点处理,比如:

WPF中制作立体效果的文字或LOGO图形

(8)现在,设置你需要的Logo前景颜色及阴影颜色。我设置之后得到的效果如下图:
WPF中制作立体效果的文字或LOGO图形

 (9)最后,将此图形转换成XAML代码。
最终得到的XAML代码是:(太多,省略)

           

给我老师的人工智能教程打call!http://blog.****.net/jiangjunshow

WPF中制作立体效果的文字或LOGO图形
你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: WPF中制作立体效果的文字或LOGO图形

带尺寸的图片: WPF中制作立体效果的文字或LOGO图形

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block var foo = 'bar'; 

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目 Value
电脑 $1600
手机 $12
导管 $1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列 第二列 第三列
第一列文本居中 第二列文本居右 第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPE ASCII HTML
Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
Quotes "Isn't this fun?" “Isn’t this fun?”
Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to-HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ(n)=(n1)!nN\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N 是通过欧拉积分

Γ(z)=0tz1etdt . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

gantt
        dateFormat  YYYY-MM-DD
        title Adding GANTT diagram functionality to mermaid
        section 现有任务
        已完成               :done,    des1, 2014-01-06,2014-01-08
        进行中               :active,  des2, 2014-01-09, 3d
        计划一               :         des3, after des2, 5d
        计划二               :         des4, after des3, 5d
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::

张三李四王五你好!李四, 最近怎么样?你最近怎么样,王五?我很好,谢谢!我很好,谢谢!李四想了很长时间,文字太长了不适合放在一行.打量着王五...很好... 王五, 你怎么样?张三李四王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎