博客统计信息

用户名:dxwangtcg
文章数:329
评论数:155
访问量:140648
无忧币:267
博客积分:1837
博客等级:6
注册日期:2008-05-19

我最近发表的评论

Ogre源码在VS2005.. 回复
呵呵,我也是刚学的,在现有2D软件..
将微软雅黑设为XP.. 回复
工作需要 :)
IEC 61850 回复
哈哈,打广告吶,有需要联系你~
恩瑞特 笔试 回复
没了,改去其他单位了,呵呵
信息系统项目管理.. 回复
知识点都是纸质的材料哦~

背景音乐

我的音乐

00:00 | 00:00

坐标系统
SVG存在两套坐标系统:视窗坐标系与用户坐标系。默认情况下,用户坐标系与视窗坐标系的点是一一对应的,都为原点在视窗的左上角,x轴水平向右,y轴竖直向下;如下图所示: 

SVG的视窗位置一般是由CSS指定,尺寸由SVG元素的属性width和height设置,但是如果SVG是存储在embedded对象中(例如object元素,或者其他SVG元素),而且包含SVG的文档是用CSS或者XSL格式化的,并且这些外围对象的CSS或者其他指定尺寸的值已经可以计算出视窗的尺寸了,则此时会使用外围对象的尺寸。
这里需要区分视窗,视窗坐标系,用户坐标系的概念:
视窗:指的是网页上面可视的矩形局域,长度和宽度都是有限的,这个区域一般与外围对象的尺寸有关。
视窗坐标系:本质是一个坐标系,有原点,x轴与y轴;而且在两个方向上是无限延伸的。默认情况下,原点在视窗的左上角,x轴水平向右,y轴竖直向下。可以对这个坐标系的点进行变换。
用户坐标系:本质是一个坐标系,有原点,x轴与y轴;而且在两个方向上是无限延伸的。默认情况下,原点在视窗的左上角,x轴水平向右,y轴竖直向下。可以对这个坐标系的点进行变换。
默认情况下,视窗坐标系与用户坐标系是重合的,但是这里需要注意,视窗坐标系属于的是创建视窗的元素,视窗坐标系确定好以后,整个视窗的坐标基调就确定了。但是用户坐标系是属于每个图形元素的,只要图形进行了坐标变换,就会创建新的用户坐标系,这个元素中所有的坐标和尺寸都使用这个新的用户坐标系。
简单点说:视窗坐标系描述了视窗中所有元素的初始坐标概况,用户坐标系描述了每个元素的坐标概况,默认情况下,所有元素都使用默认的与视窗坐标系重合的那个用户坐标系。
坐标空间变换
让我们回顾一下canvas用户坐标的变换,它们是通过平移,缩放,旋转函数实现的;每次变换后对以后绘制的图形都起作用,除非再次进行变换,这是"当前"用户坐标系统的概念。canvas只有唯一一个用户坐标系。
在SVG中,情况完全不同。SVG本身作为一种向量图元素,它的两个坐标系统本质上都可以算作"用户坐标系统";SVG的两个坐标空间都是可以变换的:视窗空间变换和用户空间变换。视窗空间变换由相关元素(这些元素创建了新的视窗)的属性viewBox控制;用户空间变换由图形元素的transform属性控制。视窗空间变换应用于对应的整个视窗,用户空间变换应用于当前元素及其子元素。
视窗变换 - viewBox属性
所有的能建立一个视窗的元素(看下一节),再加上marker,pattern,view元素,都有一个viewBox属性。
viewBox属性值的格式为(x0,y0,u_width,u_height),每个值之间用逗号或者空格隔开,它们共同确定了视窗显示的区域:视窗左上角坐标设为(x0,y0)、视窗的宽设为u_width,高为u_height;这个变换对整个视窗都起作用。
这里一定不要混淆:视窗的大小和位置已经由创建视窗的元素和外围的元素共同确定了(例如最外层的svg元素建立的视窗由CSS,width和height确定),这里的viewBox其实是设置这个确定的区域能显示视窗坐标系的哪个部分。
viewBox的设置其实是包含了视窗空间的缩放和平移两种变换。
变换的计算也很简单:以最外层的svg元素的视窗为例,假设svg的宽与长设置为width,height,viewBox的设置为(x0,y0,u_width,u_height)。则绘制的图形,宽和高的缩放比例分别为:width/u_width, height/u_height。视窗的左上角的坐标设置为了(x0,y0)。
体会下面几种代码绘出的结果的不同:
<svg width="200" height="200" viewBox="0 0 200 200">  <rect x="0" y="0" width="200" height="200" fill="Red" />  <rect x="0" y="0" width="100" height="100" fill="Green" /> </svg> 
上面的例子绘制的图中你可以看到绿色和红色的矩形,这种情况下视窗坐标系的点还是与视窗上的点是一一对应的,这个也是默认情况。
<svg width="200" height="200" viewBox="0 0 100 100">  <rect x="0" y="0" width="200" height="200" fill="Red" />  <rect x="0" y="0" width="100" height="100" fill="Green" /> </svg> 
上面的例子绘制的图中这个你只能看到绿色的矩形,而且绿色的矩形显示在屏幕上是200*200像素的,这个时候坐标点已经不是一一对应了,图被放大了。
<svg width="200" height="200" viewBox="0 0 400 400">  <rect x="0" y="0" width="200" height="200" fill="Red" />  <rect x="0" y="0" width="100" height="100" fill="Green" /> </svg> 
上面的例子绘制的图中,视窗坐标系的单位被缩小,所以两个矩形都缩小了。
在日常工作中,我们经常需要完成的一个任务就是缩放一组图形,让它适应它的父容器。我们可以通过设置viewBox属性达到这个目的。
能建立新视窗的元素
任何时候,我们都可以嵌套视窗。创建新的视窗的时候,也会创建新的视窗坐标系和用户坐标系,当然也包括裁减路径也会创建新的。下列是能建立新视窗的元素列表:
svg:svg支持嵌套。
symbol:当被use元素实例化的时候创建新的视窗。
image:引用svg元素时会创建新视窗。
foreignObject:创建新视窗去渲染里面的对象。
保持缩放的比例 - preserveAspectRatio属性
有些时候,特别是当使用viewBox的时候,我们期望图形占据整个视窗,而不是两个方向上按相同的比例缩放。而有些时候,我们却是希望图形两个方向是按照固定的比例缩放的。使用属性preserveAspectRatio就可以达到控制这个的目的。
这个属性是所有能建立一个新视窗的元素,再加上image,marker,pattern,view元素都有的。而且preserveAspectRatio属性只有在该元素设置了viewBox以后才会起作用。如果没有设置viewBox,则preserveAspectRatio属性会被忽略。
属性的语法如下:preserveAspectRatio="[defer] <align> [<meetOrSlice>]"
注意3个参数之间需要使用空格隔开。
defer:可选参数,只对image元素有效,如果image元素中preserveAspectRatio属性的值以"defer"开头,则意味着image元素使用引用图片的缩放比例,如果被引用的图片没有缩放比例,则忽略"defer"。所有其他的元素都忽略这个字符串。
align:该参数决定了统一缩放的对齐方式,可以取下列值:
none - 不强制统一缩放,这样图形能完整填充整个viewport。
xMinYMin - 强制统一缩放,并且把viewBox中设置的<min-x>和<min-y>对齐到viewport的最小X值和Y值处。
xMidYMin - 强制统一缩放,并且把vivewBox中X方向上的中点对齐到viewport的X方向中点处,简言之就是X方向中点对齐,Y方向与上面相同。
xMaxYMin - 强制统一缩放,并且把viewBox中设置的<min-x> + <width>对齐到viewport的X值最大处。
类似的还有其他类型的值:xMinYMid,xMidYMid,xMaxYMid,xMinYMax,xMidYMax,xMaxYMax。这些组合的含义与上面的几种情况类似。
meetOrSlice:可选参数,可以去下列值:
meet - 默认值,统一缩放图形,让图形全部显示在viewport中。
slice - 统一缩放图形,让图形充满viewport,超出的部分被剪裁掉。
下图诠释了各种填充的效果:
类别:XML|阅读(1)|回复(0)|(0)阅读全文>>
2012-04-26 15:18:53

一、以下图示五条线,就是五线谱.分一、二、三、四、五条线。
二、五条线中间的空白处为间,共有四间。
三、放在五线谱开头分别为高音谱号和低音谱号。


四、五线谱、简谱音阶对照示意图

如果是vc8.0

安装以下两个补丁



第一个补丁 :

VS80sp1-KB926604-X86-CHS.exe(中文版)





http://www.microsoft.com/downloads/details.aspx?FamilyID=bb4a75ab-e2d4-4c96-b39d-37baf6b5b1dc&DisplayLang=zh-cn



VS80sp1-KB926604-X86-ENU.exe(英文)

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=bb4a75ab-e2d4-4c96-b39d-37baf6b5b1dc





第二个补丁:

VS80sp1-KB971090-X86-INTL.exe

http://download.microsoft.com/download/D/2/3/D23F9F62-3DEE-4EC0-B3B9-D..
2011-11-16 11:17:47
  最近老师说让我们学习一下OGRE场景编辑器,网上搜索了很久,最后搜索到了Ogitor学做编辑器的方法,前提是要先编译好OGRE,于是,我就开始看网上的各种资料来学习OGRE,由于没人给予指导,都是自己一点点在网上看别人博客上总结的方法和自己的摸索总结出来的一些方法。。
        首先说一下我会介绍两种办法来配置: SDK 和源码
        首先申明一下: 我的环境. Win7 + VS2008 +  DirectX SDK (February 2010)
     ..
类别:OpenGL|阅读(672)|回复(0)|(0)阅读全文>>
2011-11-11 15:14:05

转自:http://blog.sina.com.cn/s/blog_788c13b00100v7ie.html
(一)boost的安装和编译

1:下载boost版本,目前最新的版本为1-47-0

   下载地址为http://sourceforge.net/projects/boost/files/boost/1.47.0/



2:进行解压缩,解压到C:\ 下面
3:单击“开始”按钮,指向“所有程序”,指向“Microsoft Visual Studio 2008”,指向

  “Visual Studio Tools”,然后单击“Visual Studio 2008 命令提示”,然后可以看见命令行



4:在命令行中输入:..
1、下载OgreOpcode:需要用SVN工具“迁出”(下载),如TortoiseSVN。SVN地址如下:

https://ogreconglo.svn.sourceforge.net/svnroot/ogreconglo/ogreopcode/trunk
2、 编译:在“scripts”文件夹下运行项目文件,而后即可生成解决方案,但这一次生成不会成功,报“getWorldTransforms不是Ogre::SceneNode的成员”错误,下面解决办法:
(1)把mParentNode->getWorldTransforms(&mFullTransform);用下面代码替换
#if OGRE_VERSION_MAJOR >= 1 && OGRE_VERSION_MINOR >= 7

&nb..
3ds max是游戏开发当中使用的主流建模工具。美术人员在max建好的模型要放置到游戏的场景中去,有两种不同的选择:一是选择自由开放的max导出插件来导出模型(如3ds、obj等文件格式);二是使用自主开发的3ds max插件来导出模型。一般的开放的模型格式往往不能满足特定游戏对3D模型的全部需求,这样开发自已导出插件就变得迫切和必须。
      本文的目标是介绍以开发出满足以下需求的max插件:
      1.导出基本的网格信息,即:顶点信息(顶点位置、法线、纹理坐标),三角形信息
&..
 

COM和DLL的区别:
1) dll是以函数集合VC必须加上extern "C"。的方式来调用的,是编程语言相关的,如:
而COM是以interface的方式提供给用户使用的是一种二进制的调用规范,是与编程语言无关的。
2) DLL只有DLL一种形势, 里面可任意定义函数无限制, 只能运行在本机上 ,而COM
有DLL和EXE两种存在形势。
3) COM所在的DLL中必须导出四个函数:1. dllgetobjectclass, 2. dllregisterserver, 3. dllunregisterserver, 4. dllunloadnow.
Com补充:
COM解决了版本WINDOWS平台上。、模块化开发,所有语言使用,当..
OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库,
gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库,gl中包含了最基本的3D函数,而glu似乎对gl的辅助,如果算数好,不用glu的情况下,也是可以做出同样的效果。
glut是基本的窗口界面,是独立于gl和glu的,如果不喜欢用glut可以用MFC和Win32窗口等代替,但是glut是跨平台的,这就保证了我们编出的程序是跨平台的,如果用MFC或者Win32只能在windows操作系统上使用。选择OpenGL的一个很大原因就是因为它的跨平台性,所以我们可以尽量的使用glut库。
opengl 实用库..
类别:OpenGL|阅读(588)|回复(0)|(0)阅读全文>>
2011-10-25 16:27:19
OBJ文件格式是非常简单的。这种文件以纯文本的形式存储了模型的顶点、法线和纹理坐标和材质使用信息。OBJ文件的每一行,都有极其相似的格式。在OBJ文件中,每行的格式如下:





前缀 参数1 参数2 参数3 ...





    其中,前缀标识了这一行所存储的信息类型。参数则是具体的数据。OBJ文件的前缀可以有:




表7.2-1 OBJ文件中的前缀


前缀

说..


1. 反走样
        在光栅图形显示器上绘制非水平且非垂直的直线或多边形边界时,或多或少会呈现锯齿状或台阶状外观。这是因为直线、多边形、色彩边界等是连续的,而光栅则是由离散的点组成,在光栅显示设备上表现直线、多边形等,必须在离散位置采样。由于采样不充分重建后造成的信息失真,就叫走样(aliasing)。而用于减少或消除这种效果的技术,就称为反走样(antialiasing)。
2. OpenGL反走样的实现

OpengL中的反走样采用的是融合的技术,来实现点、线和图形的边沿以及雾和颜色和..
类别:OpenGL|阅读(130)|回复(0)|(0)阅读全文>>
2011-10-19 12:36:14
      张炘炀从2 岁半开始学认字。
      学习特点:
       学制缩短:从“超慢式”教育中突围,加快进度。学过的知识绝不反复“嚼”,把省下来的时间花在学新知识上。

       量化为先:不怕别人指责“务实主义”,绝不脱离课本知识空谈提高素质。我实行的是农村会计式的“量化”标准,字汇、单词,知识量的积累,往多里捞,韩信带兵,多多益善。

   ..
2011-10-18 12:44:46
鼓楼区:
琅琊路小学

力学小学

拉萨路小学

鼓楼第一中心小学
玄武区
长江路小学

北京东路小学

南师附小

成贤街小学

逸仙桥小学
白下区
游府西街小学

五老村小学

瑞金路小学
建邺区
石鼓路小学

南湖第一小学

莫愁新寓小学
秦淮区
夫子庙小学

小西湖小学
下关区
天妃宫小学
雨花台区
雨花台区试验小学
 
学校名称               地   址          &nb..
这一章我们讲一下二次几何物体的绘制。二次几何物体的绘制有几种不同的方式,在本例中可以看出不同的绘制方式的不同效果,如图十五所示。



  例13:本例使用GLU库函数绘制了四个几何物体,分别为圆柱体、球体、圆盘和部分圆盘。






#include <windows.h>

#include <GL/glut.h>

#include <math.h>
/*声明四个二次曲面物体*/

GLUquadricObj *quadObj1;

GLUquadricObj *quadObj2;

GLUquadr..
2011-10-11 12:03:37
读完此章之后,你将能够做到:

建立允许用户选择(select)屏幕区域或拾取(pick)绘制在屏幕上的物体的应用程序

利用OpenGL的反馈(feedback)模式获取绚染计算结果



有些图形应用程序只绘制两维和三维物体构成的静态图形,另一些允许用户识别屏幕上的物体并移动、修改、删除或用其它方法操纵这些物体。OpenGL正是设计用于支持这些交互式应用程序的。因为绘制在屏幕上的物体通常经过多次旋转、移动和透视变换,所以确定用户选中了三维场景中的哪个物体会很困难。为了帮助你,OpenGL提供了一个选取机制可惟自动告诉你哪个物体被绘制..
 
OpenGL的窗口坐标系是这样表示的:
 
以窗口左下角为坐标原点,往右、往上、往里分别为x,y,z轴正方向。
 
我试图完成的工作是,指定窗口上的某一点,并赋予其一个假定的深度(z坐标),然后求得该点在场景中对应的眼坐标。
 
目前我掌握的方法是调用GLuUnProject()函数。该函数定义为:
 
int gluUnProject( GLdouble winx , GLdouble winy , GLdouble winz ,
 
                  const GL..
 

Ogre源码在VS2005(VC8)中的配置方式
(参照 Ogre源码在VS2008(VC9)中的配置方式 此文所写,其实配置方式都差不多,就是有些小的地方有些许不同而已。
地址:http://blog.csdn.net/zeroboundary/archive/2008/11/30/3414086.aspx)
呃,今天终于开始Ogre之旅了。
不过配置还是花了不少的时间才搞定,就是需要些耐心。
准备工作:
首先安装
1.         Microsoft Visual Studio 2005(此处使用的VS2005中文版)(开发工具,不用介绍了)注意这里必须要安装#sp1,官方网站特别强..
2011-10-09 12:35:03
CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。

通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者ctest)、生成当前平台的安装包(make package)、生成源码包(make package_source)、产生Dashboard显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括..
2011-10-09 09:13:57

 
 
关于.osm的导入
实际操作的时候发现,其实只需要利用TinyXML对其进行解析就行了,
而且只需要知道父子关系,位置,旋转,缩放,就足够了. 其他的摄象机,灯光之类就不需要管了.,
还是程序里面自己创建,进行控制好点.
下面都是从网上搜集的一些资料,.
第一个问题是,Max中东西与导出不一致的问题(位置偏差之类)
1.打开3dsmax,打开max文件
2.Edit -> Select All
3.Group -> Ungroup 重复此动作,直至Ungroup变成灰色
4.右边栏 -> Hierarchy -> Pivot -> Transform
5.右边栏 -> Utilities -&g..
 
如果只有客户端的话,可以考虑用gamebryo,技术好一点,用ogre也可以,如果规模不大,用unity3d,如果很有钱,要效果很好的,用unreal3,bigworld是带服务器的,如果能力不够,最好不要自己写。
 
如果使用Ogre需要投入较多的人力和物力,因为Ogre是开源的,工具不齐全,使用其他流行的引擎需要购买授权,可以在Ogre的基础上做东西,并且可以宣称是自主研发的,没有人会追究,如果是小型游戏可以采用Unity3D,选择什么引擎具体要考虑项目想怎么做,准备投入多少钱,计划多长时间
Ogre引擎的技术特征分析和横向对比
作..
 <<   1   2   3   4   5   >>   页数 ( 1/17 )

公告

每天进步一点点