??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲人成网站色在线入口,亚洲成年看片在线观看,亚洲AV无码国产精品色午友在线 http://m.tkk7.com/myqiao/zh-cnFri, 09 May 2025 22:20:56 GMTFri, 09 May 2025 22:20:56 GMT60?PyMedia 解码q播?mp3 文ghttp://m.tkk7.com/myqiao/archive/2011/08/07/355929.html左N左NSat, 06 Aug 2011 18:10:00 GMThttp://m.tkk7.com/myqiao/archive/2011/08/07/355929.htmlhttp://m.tkk7.com/myqiao/comments/355929.htmlhttp://m.tkk7.com/myqiao/archive/2011/08/07/355929.html#Feedback3http://m.tkk7.com/myqiao/comments/commentRss/355929.htmlhttp://m.tkk7.com/myqiao/services/trackbacks/355929.html阅读全文

左N 2011-08-07 02:10 发表评论
]]>
SQLite 入门教程Q四Q增删改查,有讲I?/title><link>http://m.tkk7.com/myqiao/archive/2011/07/13/354298.html</link><dc:creator>左N</dc:creator><author>左N</author><pubDate>Wed, 13 Jul 2011 15:41:00 GMT</pubDate><guid>http://m.tkk7.com/myqiao/archive/2011/07/13/354298.html</guid><wfw:comment>http://m.tkk7.com/myqiao/comments/354298.html</wfw:comment><comments>http://m.tkk7.com/myqiao/archive/2011/07/13/354298.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.tkk7.com/myqiao/comments/commentRss/354298.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/myqiao/services/trackbacks/354298.html</trackback:ping><description><![CDATA[     摘要: 增删Ҏ操作Q其中增删改操作被称为数据操作语a DMLQ相Ҏ说简单一炏V?查操作相Ҏ说复杂一点,因ؓ涉及到很多子?..  <a href='http://m.tkk7.com/myqiao/archive/2011/07/13/354298.html'>阅读全文</a><img src ="http://m.tkk7.com/myqiao/aggbug/354298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/myqiao/" target="_blank">左N</a> 2011-07-13 23:41 <a href="http://m.tkk7.com/myqiao/archive/2011/07/13/354298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQLite 入门教程Q三Q好多约?Constraintshttp://m.tkk7.com/myqiao/archive/2011/07/13/354288.html左N左NWed, 13 Jul 2011 10:02:00 GMThttp://m.tkk7.com/myqiao/archive/2011/07/13/354288.htmlhttp://m.tkk7.com/myqiao/comments/354288.htmlhttp://m.tkk7.com/myqiao/archive/2011/07/13/354288.html#Feedback1http://m.tkk7.com/myqiao/comments/commentRss/354288.htmlhttp://m.tkk7.com/myqiao/services/trackbacks/354288.html阅读全文

左N 2011-07-13 18:02 发表评论
]]>
SQLite 入门教程Q二Q创建、修攏V删除表http://m.tkk7.com/myqiao/archive/2011/07/12/354133.html左N左NMon, 11 Jul 2011 16:33:00 GMThttp://m.tkk7.com/myqiao/archive/2011/07/12/354133.htmlhttp://m.tkk7.com/myqiao/comments/354133.htmlhttp://m.tkk7.com/myqiao/archive/2011/07/12/354133.html#Feedback0http://m.tkk7.com/myqiao/comments/commentRss/354133.htmlhttp://m.tkk7.com/myqiao/services/trackbacks/354133.html阅读全文

左N 2011-07-12 00:33 发表评论
]]>
SQLite 入门教程Q一Q基本控制台Q终端)命ohttp://m.tkk7.com/myqiao/archive/2011/07/10/354049.html左N左NSun, 10 Jul 2011 11:32:00 GMThttp://m.tkk7.com/myqiao/archive/2011/07/10/354049.htmlhttp://m.tkk7.com/myqiao/comments/354049.htmlhttp://m.tkk7.com/myqiao/archive/2011/07/10/354049.html#Feedback3http://m.tkk7.com/myqiao/comments/commentRss/354049.htmlhttp://m.tkk7.com/myqiao/services/trackbacks/354049.html 一、基本简?/strong>
 
SQLite 是一个自持的Qself-containedQ、无服务器的、零配置的、事务型的关pd数据库引擎。因Z很小Q所以也可以作ؓ嵌入式数据库内徏在你的应用程序中。SQLite 被应用在 Solaris 10操作pȝ、Mac OS 操作pȝ、iPhone ?Skype 中。QT4 、Python ?PHP 都默认支?SQLite QFirefox Amarok {流行的应用E序在内部也使用?SQLite.
 

SQLite   数据库引擎实C主要?SQL-92 标准Q引擎本w只有一个文Ӟ大小不到 300k Q但是ƈ不作Z个独立的q程q行Q而是动态或者静态的链接到其他应用程序中。它生成的数据库文g是一个普通的盘文gQ可以放|在M目录下。SQLite 本n?C 语言开发的Q开源也跨^収ͼq且被所有的L~程语言支持?/p>

 

相关资源

wikipedia.org

 

 

二、下载安?/strong>

 

Windows 版的下蝲地址为:sqlite-shell-win32-x86-3070701.zip
我们q里下蝲的是命o行版本,所以是一个可执行文gQ还有一个动态链接库版本Q如果你的应用程序需要嵌入式数据库,可以下蝲q个版本。当Ӟ如果你愿意折腾,下蝲源代码自q译也是可以的。下载完成,解压出来׃个文Ӟ sqlite3.exe Q可以放|到L一个\径下Q然后把q个路径加入?PATH 环境变量中,q样我们可以随时在控制Cq行 SQLite 命o行工具了?/div>

 


三、基本命?/strong>

 

1、进入命令行环境Q?span style="color: #0000ff; ">sqlite3
打开一个控制台H口Q输?sqlite3 回RQ这时你p入了 SQLite 命o行环境,如图
它显CZ版本Pq告诉你每一?SQL 语句必须用分?Q?l尾 
 

2、命令行帮助Q?span style="color: #0000ff; ">.help

在命令行环境下输?.help 回RQ显C所有可使用的命令以及这些命令的帮助。注意:所有的命o开头都是一个点
 
3、退出命令行环境
.quit 或?.exit  都可以退?/div>

 

 

四、数据库和表的相兛_?/strong>

 
1、创Z个新的数据库Q?span style="color: #0000ff; ">sqlite3     文g?/u>
先徏立一?Db 目录Qƈ?Db 目录中创Z?test.db 数据库文Ӟ打开控制台窗口,命o如下Q?/div>
mkdir Db
cd Db
sqlite3 test.db
 
2、打开一个已l存在的数据库:sqlite3 已经存在的文件名
创徏一个新数据库和打开一个已l存在的数据库命令是一模一LQ如果文件在当前目录下不存在Q则新徏Q如果存在,则打开?/div>
 
3、导入数据:.read     数据文g
打开C本,q将下列 SQL 语句复制到记事本中,保存?test.sql C面说到的 Db 目录下,在命令行环境中输?/div>
.read   test.sql
卛_所有的数据导入?test.db 数据库中?/div>
test.db 导入数据
BEGIN TRANSACTION;
CREATE TABLE Cars(Id integer PRIMARY KEY, Name text, Cost integer);
INSERT INTO Cars VALUES(1,'Audi',52642);
INSERT INTO Cars VALUES(2,'Mercedes',57127);
INSERT INTO Cars VALUES(3,'Skoda',9000);
INSERT INTO Cars VALUES(4,'Volvo',29000);
INSERT INTO Cars VALUES(5,'Bentley',350000);
INSERT INTO Cars VALUES(6,'Citroen',21000);
INSERT INTO Cars VALUES(7,'Hummer',41400);
INSERT INTO Cars VALUES(8,'Volkswagen',21600);
COMMIT;

BEGIN TRANSACTION;
CREATE TABLE Orders(Id integer PRIMARY KEY, OrderPrice integer CHECK(OrderPrice>0), 
                    Customer 
text);
INSERT INTO Orders(OrderPrice, Customer) VALUES(1200, "Williamson");
INSERT INTO Orders(OrderPrice, Customer) VALUES(200, "Robertson");
INSERT INTO Orders(OrderPrice, Customer) VALUES(40, "Robertson");
INSERT INTO Orders(OrderPrice, Customer) VALUES(1640, "Smith");
INSERT INTO Orders(OrderPrice, Customer) VALUES(100, "Robertson");
INSERT INTO Orders(OrderPrice, Customer) VALUES(50, "Williamson");
INSERT INTO Orders(OrderPrice, Customer) VALUES(150, "Smith");
INSERT INTO Orders(OrderPrice, Customer) VALUES(250, "Smith");
INSERT INTO Orders(OrderPrice, Customer) VALUES(840, "Brown");
INSERT INTO Orders(OrderPrice, Customer) VALUES(440, "Black");
INSERT INTO Orders(OrderPrice, Customer) VALUES(20, "Brown");
COMMIT;

BEGIN TRANSACTION;
CREATE TABLE Friends(Id integer PRIMARY KEY, Name text UNIQUE NOT NULL
                     Sex 
text CHECK(Sex IN ('M''F')));
INSERT INTO Friends VALUES(1,'Jane''F');
INSERT INTO Friends VALUES(2,'Thomas''M');
INSERT INTO Friends VALUES(3,'Franklin''M');
INSERT INTO Friends VALUES(4,'Elisabeth''F');
INSERT INTO Friends VALUES(5,'Mary''F');
INSERT INTO Friends VALUES(6,'Lucy''F');
INSERT INTO Friends VALUES(7,'Jack''M');
COMMIT;

BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS Customers(CustomerId integer PRIMARY KEY, Name text);
INSERT INTO Customers(Name) VALUES('Paul Novak');
INSERT INTO Customers(Name) VALUES('Terry Neils');
INSERT INTO Customers(Name) VALUES('Jack Fonda');
INSERT INTO Customers(Name) VALUES('Tom Willis');

CREATE TABLE IF NOT EXISTS Reservations(Id integer PRIMARY KEY
                                        CustomerId 
integerDay text);
INSERT INTO Reservations(CustomerId, DayVALUES(1'2009-22-11');
INSERT INTO Reservations(CustomerId, DayVALUES(2'2009-28-11');
INSERT INTO Reservations(CustomerId, DayVALUES(2'2009-29-11');
INSERT INTO Reservations(CustomerId, DayVALUES(1'2009-29-11');
INSERT INTO Reservations(CustomerId, DayVALUES(3'2009-02-12');
COMMIT;

BEGIN TRANSACTION;
CREATE TABLE Names(Id integer, Name text);
INSERT INTO Names VALUES(1,'Tom');
INSERT INTO Names VALUES(2,'Lucy');
INSERT INTO Names VALUES(3,'Frank');
INSERT INTO Names VALUES(4,'Jane');
INSERT INTO Names VALUES(5,'Robert');
COMMIT;

BEGIN TRANSACTION;
CREATE TABLE Books(Id integer PRIMARY KEY, Title text, Author text
                   Isbn 
text default 'not available');
INSERT INTO Books VALUES(1,'War and Peace','Leo Tolstoy','978-0345472403');
INSERT INTO Books VALUES(2,'The Brothers Karamazov',
                         
'Fyodor Dostoyevsky','978-0486437910');
INSERT INTO Books VALUES(3,'Crime and Punishment',
                         
'Fyodor Dostoyevsky','978-1840224306');
COMMIT

 

 4、列出所有的数据表: .tables
完成上面所有的工作以后Q我们就可以列出所有的数据表了
 
5、显C数据库l构Q?span style="color: #0000ff; ">.schema
其实是一?SQL 语句Q他们描qC数据库的l构Q如?/div>
  
 
6、显C的结构:.schema    表名
 

7、导出某个表的数据: .dump    表名

q时我们可以看到Q整个表?SQL 语句的Ş式ؓ导出来了Q但是只是显C在l端上,如何把它导出到文件中呢?
 
8、设|导出目标: 
.output     文g?/u>  
或?/div>
.output   stdout
先运?.output cars.sql Q然后再q行 .dump 命o试试看?如果要回复成导出到终端(标准输出Q,则运?.output stdout
 


五、数据显C相兛_?/strong>
 
1、设|分隔符Q?span style="color: #0000ff; ">.separator    分隔W?/u>
我们可以首先q行 SELECT * FROM NamesQ?Q可以看到默认的分隔W是 | 
q行.separator : 以后Q再 SELECT * FROM NamesQ,可以看到分隔W已l变?: ?/div>
 
2、设|显C模式:.mode    模式
有好几种昄模式Q默认的?list 昄模式Q一般我们?column 昄模式Q还有其他几U显C模式可?.help ?mode 相关内容。看看下面的图,和上面是不是昄的不一样了Q?/div>
 
3、显C标题栏Q?span style="color: #0000ff; ">.headers   on
看看Q是不是又不太一样了Q?/div>
 
4、设|每一列的昄宽度Q?span style="color: #0000ff; ">.width     w1,w2,w3.........
一些内容,默认的宽度显CZ下,q个命o有用了
 
5、设|?NULL 值显C成什么样子: .nullvalue     你想要的NULL值格?/u>
默认情况下NULLg么也不显C,你可以设|成你自己想要的样子
 
6、列出当前显C格式设|情况:.show
 
7、配|文?.sqliterc

如果我们每次q入命o行都要重新设|显C格式,很麻烦,其实 .show 命o列出的所有设|项都可以保存到一?.sqliterc 文g中,q样每次q入命o行就自动讄好了?sqlterc 文g?Linux 下保存在用户?Home 目录下,?Windows 下可以保存到M目录下,但是需要设|环境变量让数据库引擎能扑ֈ它,感兴的可以看看帮助?nbsp;


//==========================================


左N 2011-07-10 19:32 发表评论
]]>HTML5边玩边学Q?0Q:俄罗斯方块就是这么简??控制界面(源码Q?/title><link>http://m.tkk7.com/myqiao/archive/2010/10/18/335477.html</link><dc:creator>左N</dc:creator><author>左N</author><pubDate>Mon, 18 Oct 2010 10:31:00 GMT</pubDate><guid>http://m.tkk7.com/myqiao/archive/2010/10/18/335477.html</guid><wfw:comment>http://m.tkk7.com/myqiao/comments/335477.html</wfw:comment><comments>http://m.tkk7.com/myqiao/archive/2010/10/18/335477.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://m.tkk7.com/myqiao/comments/commentRss/335477.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/myqiao/services/trackbacks/335477.html</trackback:ping><description><![CDATA[     摘要: q一ơ在上一程序的基础上增加了以下交互控制功能Q?、键盘控Ӟ2、开始、暂停;3、消除时候空行的停顿效果Q?、随着消除行数的增多,速度加快Q?、音效等{。可以看出,在数据模型抽象好的基上,完成控制和图形接口是非常方便的?nbsp; <a href='http://m.tkk7.com/myqiao/archive/2010/10/18/335477.html'>阅读全文</a><img src ="http://m.tkk7.com/myqiao/aggbug/335477.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/myqiao/" target="_blank">左N</a> 2010-10-18 18:31 <a href="http://m.tkk7.com/myqiao/archive/2010/10/18/335477.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学Q?Q:俄罗斯方块就是这么简??数据模型?/title><link>http://m.tkk7.com/myqiao/archive/2010/10/17/335390.html</link><dc:creator>左N</dc:creator><author>左N</author><pubDate>Sun, 17 Oct 2010 15:21:00 GMT</pubDate><guid>http://m.tkk7.com/myqiao/archive/2010/10/17/335390.html</guid><wfw:comment>http://m.tkk7.com/myqiao/comments/335390.html</wfw:comment><comments>http://m.tkk7.com/myqiao/archive/2010/10/17/335390.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://m.tkk7.com/myqiao/comments/commentRss/335390.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/myqiao/services/trackbacks/335390.html</trackback:ping><description><![CDATA[     摘要: 要写一个俄|斯方块游戏,我们先来一块考虑一下下面几个问题:....... 如果你对上面几个问题思考,每一个答案都和界面、控件、^台有关的话,是说假如你是用 .Net 的,你的每一个答案都是围l着如何利用控g、如何用窗体、在控g的哪个事仉面改变哪个属性等{,那么说明你被微Y?RAD 开发环境毒害的不浅Q我你立L?Visual StudioQ改用其他轻量的编E语a和开发^収ͼq样你可以更多的x问题的本w,而不是控件?nbsp; <a href='http://m.tkk7.com/myqiao/archive/2010/10/17/335390.html'>阅读全文</a><img src ="http://m.tkk7.com/myqiao/aggbug/335390.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/myqiao/" target="_blank">左N</a> 2010-10-17 23:21 <a href="http://m.tkk7.com/myqiao/archive/2010/10/17/335390.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学Q?Q:动画初步 ?飞舞的精?/title><link>http://m.tkk7.com/myqiao/archive/2010/10/08/333934.html</link><dc:creator>左N</dc:creator><author>左N</author><pubDate>Thu, 07 Oct 2010 16:14:00 GMT</pubDate><guid>http://m.tkk7.com/myqiao/archive/2010/10/08/333934.html</guid><wfw:comment>http://m.tkk7.com/myqiao/comments/333934.html</wfw:comment><comments>http://m.tkk7.com/myqiao/archive/2010/10/08/333934.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/myqiao/comments/commentRss/333934.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/myqiao/services/trackbacks/333934.html</trackback:ping><description><![CDATA[     摘要: 一、ؓ什么选择 HTML5 HTML5 边玩边学上q篇已经是第七篇了,在这开始之前,我想先说明一下ؓ什么叫“HTML5?边玩边学Q因为有人对 HTML5 提出质疑Q毕竟他是一个新生事物。我承认我用 HTML5 来吸引眼球了Q如果看q边玩边学系列的每一,你会发现前六文  <a href='http://m.tkk7.com/myqiao/archive/2010/10/08/333934.html'>阅读全文</a><img src ="http://m.tkk7.com/myqiao/aggbug/333934.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/myqiao/" target="_blank">左N</a> 2010-10-08 00:14 <a href="http://m.tkk7.com/myqiao/archive/2010/10/08/333934.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学Q?Q:汽R人,变Ş......http://m.tkk7.com/myqiao/archive/2010/10/05/333762.html左N左NTue, 05 Oct 2010 04:34:00 GMThttp://m.tkk7.com/myqiao/archive/2010/10/05/333762.htmlhttp://m.tkk7.com/myqiao/comments/333762.htmlhttp://m.tkk7.com/myqiao/archive/2010/10/05/333762.html#Feedback4http://m.tkk7.com/myqiao/comments/commentRss/333762.htmlhttp://m.tkk7.com/myqiao/services/trackbacks/333762.html阅读全文

左N 2010-10-05 12:34 发表评论
]]>
HTML5边玩边学Q?Q:囑փ、图案和字体 http://m.tkk7.com/myqiao/archive/2010/10/04/333734.html左N左NMon, 04 Oct 2010 08:45:00 GMThttp://m.tkk7.com/myqiao/archive/2010/10/04/333734.htmlhttp://m.tkk7.com/myqiao/comments/333734.htmlhttp://m.tkk7.com/myqiao/archive/2010/10/04/333734.html#Feedback0http://m.tkk7.com/myqiao/comments/commentRss/333734.htmlhttp://m.tkk7.com/myqiao/services/trackbacks/333734.html阅读全文

左N 2010-10-04 16:45 发表评论
]]>
HTML5边玩边学Q?Q:变的色?/title><link>http://m.tkk7.com/myqiao/archive/2010/10/03/333700.html</link><dc:creator>左N</dc:creator><author>左N</author><pubDate>Sun, 03 Oct 2010 12:11:00 GMT</pubDate><guid>http://m.tkk7.com/myqiao/archive/2010/10/03/333700.html</guid><wfw:comment>http://m.tkk7.com/myqiao/comments/333700.html</wfw:comment><comments>http://m.tkk7.com/myqiao/archive/2010/10/03/333700.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/myqiao/comments/commentRss/333700.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/myqiao/services/trackbacks/333700.html</trackback:ping><description><![CDATA[     摘要: 渐变?GradientsQ上下文对象有两个方法可以创Z个叫?canvasGradient 的对象,q用它设|?fillStyle ?strokeStyle 属性,l制出来的图形就有渐变效果了  <a href='http://m.tkk7.com/myqiao/archive/2010/10/03/333700.html'>阅读全文</a><img src ="http://m.tkk7.com/myqiao/aggbug/333700.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/myqiao/" target="_blank">左N</a> 2010-10-03 20:11 <a href="http://m.tkk7.com/myqiao/archive/2010/10/03/333700.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学Q?Q:像素和颜?/title><link>http://m.tkk7.com/myqiao/archive/2010/09/18/332404.html</link><dc:creator>左N</dc:creator><author>左N</author><pubDate>Sat, 18 Sep 2010 15:00:00 GMT</pubDate><guid>http://m.tkk7.com/myqiao/archive/2010/09/18/332404.html</guid><wfw:comment>http://m.tkk7.com/myqiao/comments/332404.html</wfw:comment><comments>http://m.tkk7.com/myqiao/archive/2010/09/18/332404.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/myqiao/comments/commentRss/332404.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/myqiao/services/trackbacks/332404.html</trackback:ping><description><![CDATA[     摘要: 我们在电脑屏q上可以看到色彩斑斓的图像,其实q些囑փ都是׃个个像素点组成的。那么像素是什么?颜色又是什么呢Q(如果您提两个问题Q您一定是个热爱思考的人)一个像素其实对应着内存中的一l连l的二进制位  <a href='http://m.tkk7.com/myqiao/archive/2010/09/18/332404.html'>阅读全文</a><img src ="http://m.tkk7.com/myqiao/aggbug/332404.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/myqiao/" target="_blank">左N</a> 2010-09-18 23:00 <a href="http://m.tkk7.com/myqiao/archive/2010/09/18/332404.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学Q?Q:基础l图http://m.tkk7.com/myqiao/archive/2010/09/18/332371.html左N左NSat, 18 Sep 2010 03:32:00 GMThttp://m.tkk7.com/myqiao/archive/2010/09/18/332371.htmlhttp://m.tkk7.com/myqiao/comments/332371.htmlhttp://m.tkk7.com/myqiao/archive/2010/09/18/332371.html#Feedback6http://m.tkk7.com/myqiao/comments/commentRss/332371.htmlhttp://m.tkk7.com/myqiao/services/trackbacks/332371.html

在前一博客中Q我们测试了 canvas 标签的用法,q得C canvas 标签的渲染上下文对象Q?但是q没有用它绘制Q何图形。在q一中Q我们先了解一下HTML5l图的一些基概念Q然后再来画几个囑Ş玩玩?/p>

一、坐标系

其实只要玩过一点点囑Ş~程的h都知道,电脑上的坐标pd数学上的坐标pȝ微有点不同,坐标的原点在l制区域Q这里是CanvasQ的左上角,X轴正向朝叻IY轴正向朝下,如下?/p>

声明Q?/strong>为本文ؓ原创文章Q作者保留所有权利!Ƣ迎转蝲Q{载请注明作?font color="#ff0000">左N和出?font color="#ff0000">博客?/strong>

 

二、Stroke ?Fill

HTML5中将囑Ş分ؓ两大c:

W一cȝ?StrokeQ我的理解就是轮廓、勾勒或者线条,MQ图形是q条组成的Q?/p>

W二cȝ?FillQ就是填充区?/p>

上下文对象中有两个绘制矩形的ҎQ可以让我们很好的理解这两大cd形的区别Q?/p>

一个是 strokeRectQ还有一个是 fillRect

下面的代码分别用q两个方法来l制矩ŞQ你可以分别点击两个按钮来看看有什么不同,从而理?stroke ?fill 的区?/p>

讄d
<canvas id="test1" width="200" height="200" style=" background-color: grey">你的览器不支持 &lt;canvas&gt;标签Q请使用 Chrome 览?nbsp;或?nbsp;FireFox 览?/span></canvas>
<input type="button" value="strokeRect"  onclick="strokeRect();"/>
<input type="button" value="fillRect"  onclick="fillRect();"/>

 

strokeRect ?fillRect
function strokeRect(){
    var canvas 
= document.getElementById('test1');
    var ctx
=canvas.getContext("2d");
    ctx.clearRect(
0,0,200,200);
    ctx.strokeStyle
="blue";
    ctx.strokeRect(
10,10,180,180);
}

function fillRect(){
    var canvas 
= document.getElementById('test1');
    var ctx
=canvas.getContext("2d");
    ctx.clearRect(
0,0,200,200);
    ctx.fillStyle
="blue";
    ctx.fillRect(
10,10,180,180);
}

 

你的览器不支持 <canvas>标签Q请使用 Chrome 览?或?FireFox 览?/canvas>

 

三、颜?/strong>

上下文对象有两个属性可以用来设|颜ԌstrokeStyle ?fillStyle

strokeStyle 的值决定了你当前要l制的线条的颜色

fillStyle 的值决定了你当前要填充的区域的颜色

颜色值应该是W合CSS3 颜色值标?/a>的有效字W串。下面的例子都表C同一U颜艌Ӏ?/p>

关于颜色Q以后会有更多的说明?/p>

 

四、基本绘?/strong>

除了上面l出的两个绘制矩形的Ҏ外,上下文对象还有几个方法可以用来绘制一些基本图形,如下Q?/p>

moveTo(x,y)QmoveToҎq不能画ZQ何东西,它只是将ȝ的当前点Ud?x,y)?/p>

lineTo(x,y)Q从当前点到Qx,yQ点l制一条直Uѝ注意:l制完成后,当前点就变成?x,y)Q除非你?moveTo ҎL变他

arc(x, y, radius, startAngle, endAngle, anticlockwise) Q绘制一条弧U?/p>

quadraticCurveTo(cp1x, cp1y, x, y)
bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) Q这两个Ҏ都是l制贝叶斯曲U,具体用法看参考手?/p>

rect(x, y, width, height) Q绘制一个矩形。注意: 当它被调用时QmoveTo Ҏ会自动被调用Q参Cؓ(0,0)Q于是v始坐标又恢复成初始原点了?

有了直线、弧Uѝ曲Uѝ方形和圆Şq几U基本图形,我们可以组合出更复杂的囑Ş?/p>

 

五、理解绘制\?Drawing Path

上一文章中说过Q我们绘制的囑Ş是先l制C个抽象的上下文对象中Q其实就是内存中Q,然后再将上下文对象输出到昄讑֤上,q个输出到显C备的q程不需要我们操心。但是有时候我们ƈ不想立刻输出每一ơ绘制动作,也许我想让一l绘制动作完成以后,再集中一块输出, 比如一个围棋盘有19×19条直U组成,正常情况下需要向xC备输?9×19ơ,但是如果我们先暂停向昄讑֤输出Q等在上下文中(内存中)全部l制完成19×19条直U时Q再向显C备输出,只需要输Zơ就可以了?/p>

q种情况在HTML5中叫做绘制\径,它由几个上下文对象的Ҏl成Q?/p>

beginPath() Q开始\径,意思就是在你调用这个方法后Q你l制的图形就不会再向屏幕输出了,而只是画C上下文对象中Q内存中Q?/p>

stroke() Q将你调?beginPath Ҏ以后l制的所有线条,一ơ性输出到昄讑֤?/p>

closePath() Q如果你调用 beginPath Ҏ以后Q在上下文对象中q行了一pd的绘Ӟ但是得到的图形是不闭合的Q这个方法将会帮你补上最后一条直U,你的图形闭合v来?/p>

注意Q?/span>closePathq不向屏q输出图形,而只是在上下文对象中补上一条线Q这个步骤不是必需?/u>?/p>

fill() Q?/p>

如果你的l制路径l成的图形是闭的,q个Ҏ用 fillStyle 讄的颜色填充图形,然后立即向屏q输出;

如果l制路径不是闭的,q个Ҏ会先图形闭合v来,然后再填充输出?/p>

注意Q?/strong>所有的 fill 囑ŞQ如 fillRect {,都是立刻向屏q输出的Q他们没有绘制\径这个概?/u>

 

下面的代码将l制一个简单的填充三角形?/p>

注意Q?/span>l制三角形的时候,默认的背景色为白Ԍ默认的前景色为黑?/u>?/p>

讄d
<canvas id="test2" width="200" height="200" style="border:1px solid #c3c3c3;">你的览器不支持 &lt;canvas&gt;标签Q请使用 Chrome 览?nbsp;或?nbsp;FireFox 览?/span></canvas>
<input type="button" value="M?  onclick="drawTri();"/>
<input type="button" value="清除"  onclick="clearTri();"/>

 

l制三角?/span>
<script type="text/javascript">
    
function drawTri(){
        var canvas 
= document.getElementById('test2');
        var ctx
=canvas.getContext("2d");
        ctx.beginPath();
        ctx.moveTo(
75,50);
        ctx.lineTo(
100,75);
        ctx.lineTo(
100,25);
        ctx.fill();
    }
    
function clearTri(){
        var canvas 
= document.getElementById('test2');
        var ctx
=canvas.getContext("2d");
        ctx.clearRect(
0,0,200,200);
    }
</script>

你的览器不支持 <canvas>标签Q请使用 Chrome 览?或?FireFox 览?/canvas>

 

六、半个单位的坐标

q里q要回过头来说说坐标Q下面的代码是在d上绘制网|点击“ȝ?#8221;按钮可以看见效果

讄d
<canvas id="test3" width="500" height="375" style="border:1px solid #c3c3c3;">你的览器不支持 &lt;canvas&gt;标签Q请使用 Chrome 览?nbsp;或?nbsp;FireFox 览?/span></canvas>
<input type="button" value="ȝ?  onclick="drawMap();"/>
<input type="button" value="清除"  onclick="clearMap();"/>

 

l制|格
<script type="text/javascript">
    
function drawMap(){
        var canvas 
= document.getElementById('test3');
        var ctx
=canvas.getContext("2d");
        ctx.beginPath();
        
for (var x = 0.5; x < 500; x += 10) {
            ctx.moveTo(x, 
0);
            ctx.lineTo(x, 
375);
        }
        
for (var y = 0.5; y < 375; y += 10) {
            ctx.moveTo(
0, y);
            ctx.lineTo(
500, y);
        }
        ctx.strokeStyle 
= "#eee";
        ctx.stroke();
    }
    
function clearMap(){
        var canvas 
= document.getElementById('test3');
        var ctx
=canvas.getContext("2d");
        ctx.clearRect(
0,0,500,375);
    }
</script>

 

你的览器不支持 <canvas>标签Q请使用 Chrome 览?或?FireFox 览?/canvas>

 

q段代码中,有一处奇怪的地方Q就是坐标@环是?.5开始的Q这是ؓ什么呢Q?/p>

如下图,假如我想l制一条从(1,0)?1,3)的线Q由于线的默认宽度是一个像素,所以在我想象中应该l制?strong style="color: #339966">q?/u>的部分,卛_坐标 1 两边各占半个像素的宽度?/p>

然而,览器的最单位是一个像素,所以他会向两边扩展Q实际绘制出来的绿?/u>的部分,卛_用了两个像素的宽度。这P我们l制的线条在坐标上就不精了

如下图,如果我们l出的v始坐标是(1.5,0)?1.5,3)Q那么线条的宽度才是正确的一个像素?/p>

 

 

七、清I画?/strong>

上面l出的两D代码中Q我们都用到了清I画布,用到的方法如下:

clearRect(x,y,width,height)Q?/p>

它接受四个参敎ͼ x ?y 指定矩Ş左上?相对于原?的位|,width ?height 是矩形的宽和高。调用该Ҏ会将l出的矩形区域中所有绘制图形都清空Q露出画布的背景

 

声明Q?/strong>为本文ؓ原创文章Q作者保留所有权利!Ƣ迎转蝲Q{载请注明作?font color="#ff0000">左N和出?font color="#ff0000">博客?/strong>

//==========================================

 



左N 2010-09-18 11:32 发表评论
]]>
HTML5边玩边学Q?Q:dhttp://m.tkk7.com/myqiao/archive/2010/09/17/HTML5.html左N左NFri, 17 Sep 2010 15:45:00 GMThttp://m.tkk7.com/myqiao/archive/2010/09/17/HTML5.htmlhttp://m.tkk7.com/myqiao/comments/332343.htmlhttp://m.tkk7.com/myqiao/archive/2010/09/17/HTML5.html#Feedback2http://m.tkk7.com/myqiao/comments/commentRss/332343.htmlhttp://m.tkk7.com/myqiao/services/trackbacks/332343.html阅读全文

左N 2010-09-17 23:45 发表评论
]]>
wxPython 教程 Q?Q—?Framehttp://m.tkk7.com/myqiao/archive/2009/10/07/297397.html左N左NWed, 07 Oct 2009 11:59:00 GMThttp://m.tkk7.com/myqiao/archive/2009/10/07/297397.htmlhttp://m.tkk7.com/myqiao/comments/297397.htmlhttp://m.tkk7.com/myqiao/archive/2009/10/07/297397.html#Feedback0http://m.tkk7.com/myqiao/comments/commentRss/297397.htmlhttp://m.tkk7.com/myqiao/services/trackbacks/297397.html

一、wxpython 包的安装
?教程 1 中,有h按照l出的代码运行,出现了如下错误:
ImportError: No module named wx

q是因ؓ wxpython 不是默认的包Q需要自己安装。具体的安装地址是:
http://www.wxpython.org/download.php

您可以根据自ql的q_和python版本选择相应的包下蝲Q安装好后就不会出现上面的错误了。下载页面中q有一?Demo ?/strong>Q里面包含了大量的示例代码和帮助文gQ是学习 wxpython 的好帮手?/p>

二、Frame

Frame 其实是H体Q前面我们生成窗体的时候没有给他Q何参敎ͼ只生成了一个默认的H体Q生成默认窗体的代码如下Q?/p>

frame = wx.Frame(None)


其实 wx.Frame 可以传入很多参数Q由此来控制生成H体的样式和行ؓQ现在我们来看看 Frame构造函数的原型Q?/p>

__init__(self, Window parent, int id=-1, String title=EmptyString, 
            Point pos
=DefaultPosition, Size size=DefaultSize, 
            long style
=DEFAULT_FRAME_STYLE, String name=FrameNameStr)

参数1Qparent
父窗体。如果没有父H体Q可以设?None?/p>

参数2Qid
H体~号。如果设|ؓ-1Q则pȝ自动l他分配一个编受默认ؓ-1.

参数3Qtitle
H体的标题栏Q即Caption。默认ؓI?/p>

参数4Qpos
H体的位|坐标。默认gؓ(-1,-1),则窗体的位置ql决定?/p>

参数5Qsize
H体的大。默认gؓ(-1,-1),则窗体的大小ql决定?/p>

参数6Qstyle
H体样式。默认gؓ DEFAULT_FRAME_STYLE
默认样式 DEFAULT_FRAME_STYLE 是下面这些值的复合Q?br /> wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX | wxCLIP_CHILDREN
它包括最化按钮、最大化按钮、系l菜单、标题栏、关闭按钮、可变大等{。您也可以根据自q需求改变样式,具体请参照帮助?/p>

参数7Qname
H体名称?/p>

可以看到Q?strong>7个参C6个都有默认?/u>Q只有第一个参?parent 需要设|一下,所以一个最单的H体是Q?br /> frame = wx.Frame(None)

三、几个小例子

H体标题Q?br /> frame = wx.Frame(None,title="Hello World")

位置和大:
frame = wx.Frame(None,title="世界你好",size=(300,150),pos=(200,200))

样式一Q只有一个光U秃的标题栏
frame = wx.Frame(None,style=wx.CAPTION)

样式二:只有客户区,没有标题栏,也不能改变大?br /> frame = wx.Frame(None,style=0)

样式三:只有一个关闭按钮,不能改变大小
frame = wx.Frame(None,style= wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)

 
//==========================================



左N 2009-10-07 19:59 发表评论
]]>
վ֩ģ壺 þ޾Ʒ| պһëƬ| ޹Ʒһþhs| Ʒվ| ޾Ʒһ³˿Ƭ| ĻƵ | ɫַѹۿ| ɫƷһ234| ëƬһëƬ| ձƬѹۿһ| ԴƵ| ɫƬѹۿ| ŷxƵ| ޻Ƭֻѹۿ| 91Ƶѹۿ| AV12þ| AëƬA| AVվ| Av뾫Ʒһ| һԿĿ| һ| ޳AVƬ߹ۿ| 91ƷѾþþþþþþ| ޾Ʒm߹ۿ| ޳aƬ߹ۿձ鶹| þþþƷ޳18վ | ҹ޾Ʒ| պһ| ձɫƵ| Ļվ| ˳ɵӰվƷ| Ƶۿ| ѹ߾Ʒһ| һ| һƵ| þѹƵ| ۺϾƷ| vaþþþͬ| ѹۿͰŮƵ | 91Ʒ鶹ϵ| ޾Ʒtvþþþþþþþ|