摘要: 在编程的一些算法中,交换函数虽然不起眼,但也是一个不可或缺的组成部分。少了它,很多算法就难以为继。交换函数定义就是交换两个变量的值。有一点编程基础的人都能很快速的写出代码来。  Public Shared Sub SwapNumber(ByRef N1 As Integer, ByRef N2 As Integer)    Dim I As Integer    I=N1    N1=N2    ... 阅读全文
posted @ 2009-12-15 21:21 万仓一黍 阅读(1839) 评论(8) 推荐(0) 编辑
摘要: 在上一文中,介绍了“如何快速计算颜色的色相值”,本文介绍从色相值到纯色的计算过程。之前已经介绍,色相值和纯色有着一一对应的关系。先看看传统的计算方法:      从图中计算的过程来看,还是比较繁琐的,再看看之前的纯色色相分布图。    从图中找到规律,在图中的右半部阴影部分,各个分量的变化如下所示:    0-60:R:255-》255;G:0-》255;B:0-》0;  ... 阅读全文
posted @ 2009-12-15 08:08 万仓一黍 阅读(2913) 评论(3) 推荐(0) 编辑
摘要: 在之前的文章中,给定一个颜色,它的色相值计算如下:  由公式可知,计算色相时要分为六种情况,计算略显复杂。有没有简单的计算方法呢?来看看下面这个图  上面这个图,表示纯色的色相分布,把纯色分为六个部分。仔细观察,每个部分的纯色都有统一的特点,例如,右上角的部分,R=255,B=0,G从0变化到255。右边的部分,G=255,B=0,R从255变化到0。每一个部分都是一个分量是255,一个分量是0,... 阅读全文
posted @ 2009-12-14 15:40 万仓一黍 阅读(7109) 评论(2) 推荐(2) 编辑
摘要: 前一篇文章介绍了颜色的HSV表示方法,其中H表示色相,亦即表示在色相环上的位置。S表示颜色的纯度,当S=1时,表示颜色最纯,当S=0时,表示颜色没有纯度,此时表示为灰度色。V表示颜色的亮度,当V=1,颜色最亮,当V=0时,亮度最低,此时表示颜色为黑色。  综上所述,当一个颜色(H,S,V)中的S=1,V=1时,此时该颜色表示色相环上的一种颜色。我们定义该颜色为纯色或者是色相色。  由于每种颜色都有... 阅读全文
posted @ 2009-12-14 10:26 万仓一黍 阅读(3938) 评论(4) 推荐(0) 编辑
摘要: 在计算机中的实际应用中,除了RGB表示方法外,还有一种用的比较多的表示方法就是HSV(又称HSB)表示方法。它把颜色分为三个参量,一个是色相Hue,具体表示在色相环上的一种纯色,一个是饱和Saturation,具体表示纯色在颜色中的百分比,当S=1时,表示颜色最纯,当S=0时,表示灰度值。一个是亮度Value,表示颜色的亮度,当V=0时,表示黑色。  HSV颜色系统在不破坏图像结构的基础上更该颜色... 阅读全文
posted @ 2009-12-14 08:28 万仓一黍 阅读(11129) 评论(7) 推荐(0) 编辑
摘要: 在VB2005中,用来表示颜色的是Color结构,注意是结构,也就是不能继承的。下面把Color结构中的重要属性方法等介绍一下。大部分的资料来源于微软的MSDN。  重要的属性:  颜色的三分量    R:红色的分量,取值范围为0—255    G:绿色的分量,取值范围为0—255    B:蓝色的分量,取值范围为0—255 颜色的类型:  IsKnownCol... 阅读全文
posted @ 2009-12-13 12:09 万仓一黍 阅读(1501) 评论(0) 推荐(0) 编辑
摘要: 无论是设计网页还是编写程序,一个美观的界面是必不可少的。仔细分析界面的构成,无外乎两个因素:一是颜色、一个是形状。这个又被称为UI设计。美术功底好的人,是能设计出让人赏心悦目的界面来,欠缺美术功底的人,有时费尽心思也没辙。  这个系列的文章,专注于计算机的颜色表示。通过了解计算机的颜色表示,能有助于提高那些欠缺美术功底的人设计界面的能力。  计算机中的颜色是采用RGB颜色系统,也就是每种颜色采用红... 阅读全文
posted @ 2009-12-13 12:05 万仓一黍 阅读(5531) 评论(0) 推荐(0) 编辑
摘要: 前两日,写了一篇“遍历组合的实现——VB2005”。在数学分支里,排列与组合是不分家的。于是,动手写下本文。在上一文中,采用了递归调用,虽然便于理解,但是算法的效率上打个折扣。本文一并重写,改为循环调用。 代码赋予其后,用的是VB2005 两个类,一个是clsPermutation,用来计算排列的;一个是clsCombination,用来计算组合的。下面,把各个函数说明一下。 类clsPermutation: 函数:GetPermutation 获得指定标号的排列,返回值是一个数组 参数: Lower,排列中的下限 Upper,排列中的上限 Count,排列... 阅读全文
posted @ 2009-12-12 12:45 万仓一黍 阅读(2100) 评论(3) 推荐(2) 编辑
摘要: 本人由于工作关系,需要一段代码,将给定的字符串中的非汉字去除,只保留汉字部分。 这个一般用正则表达式比较简单,网上有一些匹配汉字的正则表达式,拿来经过改造就能实现我前面的要求。 注释一下,正则表达式[\u4e00-\u9fa5]表示匹配中文,则正则表达式[^\u4e00-\u9fa5]匹配非中文。用Replace方法将匹配的非中文替换为空字符串,也就是去除了文本中的非中文字符。 代码格式修正于2012年1月5日Imports System.Text.RegularExpressionsPublic Class clsT Public Function OnlyChinese(... 阅读全文
posted @ 2009-12-11 18:00 万仓一黍 阅读(16903) 评论(1) 推荐(0) 编辑
摘要: 在VB2005中,读取文本文件中的文本可以采用的方法是System.IO.File.ReadAllText,这个函数有两个参数,一个是文件的文件名(包含路径);一个是文本的编码,如果省略,采用系统默认的编码。可是,一般的文本编码有ANSI、Unicode、UTF8等。如果编码的格式选择不对,则读出来是一段乱码。 笔者依照网上的资料,编写一个函数,能自动根据判别文本的编码格式,首先是将文本文件的数据读到字节数组中,再判别文本的编码格式,最后将字节数组转化为文本。 依据字节流,前三个字节标识着这个文本的编码方式。那么依据这三个字节的值,用不同的编码来解析这个字节流。这是下面这段代码的核心内... 阅读全文
posted @ 2009-12-11 08:29 万仓一黍 阅读(2716) 评论(4) 推荐(1) 编辑