关于TasphyrePalette的基础使用

原创 2007年09月26日 21:53:00
学 delphiX ,但不知

DXDraw.ColorTable := ImageList.Items.ColorTable;
  DXDraw.DefColorTable := ImageList.Items.ColorTable;
  DXDraw.UpdatePalette;

这几句是什么意思

http://www.huosoft.com/bbs/ShowPost.asp?ThreadID=134 找到了介绍的文章

关于TasphyrePalette的基础使用

关于TasphyrePalette的基础使用
//本文意在描述TasphyrePalette的基本使用方面的知识,文中内容针对入门级用户了解TasphyrePalette而书写的。

Palette是什么?Pallette是调色板的意思。
我们首先要开始一个简单的关于调色版使用的例子,让你简单的知道调色板该如何使用。
首先我们在单元的Type里定义一个Palette,看起来象下面的一样。Palette可以是你随便起的。
Palette: TAsphyrePalette;
这样我们就得到了一个Palette,但是我们现在还不能使用。我们还需要像下面这样:
Palette:= TAsphyrePalette.Create();
这样我们才算真真正正的得了一个Palette(调色板),现在这个调色板是空的或者说是一个我们新买到的调色板,我们需要给这个新调色板里添加基础颜色。看起来像下面的步骤。
Palette.Add($FFFF0000, 0.0);
Palette.Add($FFFFFF00, 1.0);
Palette的add是添加的意思。在Palette里面我们添加了两种颜色。$FFFF0000是红色,$FFFFFF00是黄色。也许你到现在还不明白,我们做这些的意义。不过不要紧,请跟着我往下看,秘密就在最后面的一个参数上,现在我们不要去理会它。
我们下一步要做的是,即然我们把颜色加到调色板里,那么我们怎么样来使用调色板里的颜色。
我们注意看下面的部分:
palette.Color[0.0] // 1
palette.Color[1.0]  // 2
这是我们通过Palette来获得颜色的方法。通过1,我们可以得到红色。通过2我们可以获得黄色。也许你现在会问,即然这样,我们直接使用颜色代码$FFFF0000或$FFFFFF00不就可以了么?干嘛,还要用使palette呢?
现在我们来思考一个问题,如果我们需要一个黄色和红色中间的颜色。我们该怎么做?
palette.Color[0.5]
注意上面这句后面的参数。他是0.0和1.0之间的中间值。也许你可能已经想到,没错,我们通过中间值,就能得到红色和黄色中间的颜色。
Palette.Add($FFFF0000, 0.0);
Palette.Add($FFFFFF00, 1.0);
上面这两句是我们曾经为调色板添加的颜色,那么后面的参数,0.0 和 1.0,你已经可以明白是做什么用的,不需要我再细细的说明。
那么在正常使用的时候呢!是下面这个样子。
Sender.Canvas.LineEx(10, 200,100, 220,palette.Color[0.5])
上面是一个画线的语句,里面的数值分别是x1,y1,x2,y2,这是画一条线用的两点坐标,如果你不懂的话建议你回头去看看初中数学书,那里会给你提供你关于坐标的知识帮助。最后的palette.Color[0.5]就是这条线的颜色color,中间值0.5,跟据我们前面设计的palette,这条线的颜色是红色和黄色中间的颜色。
最后,准备简单的分析一下palette.
Palette的根是TasphyrePalette类,我们重点就要看看TasphyrePalette.有兴趣的入门者跟我往下看:
TAsphyrePalette = class
 private
  Data : array of TAsphyreColorNode;
这是TasphyrePalette类最头上的两句,我们不用看得那么深,初学者看得太深,最大的坏处就是会让自己会头痛,就像我现在这样。
TasphyrePalette的核心就是数组化的TasphyreColorNode,我们现在看到重点了。
我们现在需要集中精力来看TasphyreColorNode是个什么东西,他怎么就能把颜色记住。
TAsphyreColorNode = record
  Color   : TTrueColor;
  NodeType: TNodeType;
  Theta   : Real;
上面的四行,就是Tasphyre的核心了,你可能会感叹,就这么简单啊!没算一直就这么简单,是你把它想的太难了。
好了,我们来简单理解一下TasphyreColorNode
Color   : TtrueColor 就是我们Palette.Add($FFFF0000, 0.0);句子存放颜色的地方。
Theta   : Real;  就是存放0.0 和 0.1的地方。
你可能会大叫那NodeType是什么啊!我们至始到终也没设置它。看看下面这句ADD。
Result:= Add(Diffuse, ntPlain, Theta);
发现没有,NodeType已经被黓认为ntPlain了。为什么?因为需要你自己去发现,不要总等别人喂你,不能光让我一个人头痛啊,你说是不是。
这里我们还有一个东西,是需要必须了解的。就是TtrueColor是个什么玩意!
来跟我看看,简单到你可能会吃惊。
TTrueColor = record
  r, g, b, a: Single;
R,G,B,A,分别带表红色,绿色,蓝色,对就是三原色。最后一个A是用来记录alpha值的。什么是alpha呢!让我想想,还是你自己去查资料吧!光alpha详细的来讲,都够写一本书的了。呵呵!

可参照http://www.huosoft.com/bbs/ShowPost.asp?ThreadID=135例子来阅读本文。

 

 

JavaScript基础入门

在工作中,时不时的要设计去与web端的网页去进行一些交互,要想软件的功能更加强大,包括QT,Android,IOS的开发,无一列外的都会涉及到与JS的交互,所以想着手学习JavaScript,以后遇到...
  • x348722662
  • x348722662
  • 2016年03月22日 17:16
  • 1610

Java基础练习选择题(1)答案已整理

JDK是( )  A、一种全新的程序语言  B、一种程序开发辅助工具  C、一种由Java写成的,并支持Java Applet的浏览器  D、一种游戏软件 2、Java语言中下面哪个可以用作...
  • u011225629
  • u011225629
  • 2015年07月14日 09:11
  • 15614

不可不懂的.NET基础知识

刚开始接触.NET很疑惑,看完视频也不是太懂,通过总结和反复,从概括和概念入手,慢慢变得清晰了。这篇博客主要是我对.NET基础知识的了解,算作积累吧。 .NET框架体系结构 由四个主要部分...
  • zhuanzhe117
  • zhuanzhe117
  • 2013年05月21日 13:39
  • 5271

Protel_99_SE_使用基础第13章

  • 2014年12月18日 20:56
  • 1.55MB
  • 下载

基础平台使用手册-Web Service

  • 2014年09月26日 13:04
  • 127KB
  • 下载

数据库 SQL Server 基础及使用

  • 2015年03月30日 17:59
  • 2.38MB
  • 下载

PS使用基础知识

  • 2014年12月15日 13:13
  • 1.15MB
  • 下载

Kali Linux系统使用基础教程v1.0

  • 2017年11月03日 11:54
  • 1.34MB
  • 下载

win7系统基础使用介绍

  • 2015年01月19日 15:54
  • 1.3MB
  • 下载

KETTLE使用的基础文档

  • 2015年12月01日 18:36
  • 818KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于TasphyrePalette的基础使用
举报原因:
原因补充:

(最多只允许输入30个字)