求一个C语言图形变换程序,先进行图形绘制,后能进行图形复制、移动、缩放、旋转,跪求啦。。。
缩放用:StretchBlt图片任意角度翻转:HBITMAP CBarDemoView::GetRotatedBitmapNT( HBITMAP hBitmap, float radians, COLORREF clrBack )
{
// Create a memory DC compatible with the display
CDC sourceDC, destDC;
sourceDC.CreateCompatibleDC( NULL );
destDC.CreateCompatibleDC( NULL ); // Get logical coordinates
BITMAP bm;
::GetObject( hBitmap, sizeof( bm ), &bm ); float cosine = (float)cos(radians/180 * PI);
float sine = (float)sin(radians/180 * PI); int x1 = (int)(bm.bmHeight * sine);
int y1 = (int)(bm.bmHeight * cosine);
int x2 = (int)(bm.bmWidth * cosine + bm.bmHeight * sine);
int y2 = (int)(bm.bmHeight * cosine - bm.bmWidth * sine);
int x3 = (int)(bm.bmWidth * cosine);
int y3 = (int)(-bm.bmWidth * sine); int minx = min(0,min(x1, min(x2,x3)));
int miny = min(0,min(y1, min(y2,y3)));
int maxx = max(0,max(x1, max(x2,x3)));
int maxy = max(0,max(y1, max(y2,y3))); int w = maxx - minx;
int h = maxy - miny; // Create a bitmap to hold the result
HBITMAP hbmResult = ::CreateCompatibleBitmap(CClientDC(NULL), w, h); HBITMAP hbmOldSource = (HBITMAP)::SelectObject( sourceDC.m_hDC, hBitmap );
HBITMAP hbmOldDest = (HBITMAP)::SelectObject( destDC.m_hDC, hbmResult ); // Draw the background color before we change mapping mode
HBRUSH hbrBack = CreateSolidBrush( clrBack );
HBRUSH hbrOld = (HBRUSH)::SelectObject( destDC.m_hDC, hbrBack );
destDC.PatBlt( 0, 0, w, h, PATCOPY );
::DeleteObject( ::SelectObject( destDC.m_hDC, hbrOld ) ); // We will use world transform to rotate the bitmap
SetGraphicsMode(destDC.m_hDC, GM_ADVANCED);
XFORM xform;
xform.eM11 = cosine;
xform.eM12 = -sine;
xform.eM21 = sine;
xform.eM22 = cosine;
xform.eDx = (float)-minx;
xform.eDy = (float)-miny; SetWorldTransform( destDC.m_hDC, &xform ); // Now do the actual rotating - a pixel at a time
destDC.BitBlt(0,0,bm.bmWidth, bm.bmHeight, &sourceDC, 0, 0, SRCCOPY ); nWidth[m_count] = bm.bmWidth;
nHeight[m_count] = bm.bmHeight; // Restore DCs
::SelectObject( sourceDC.m_hDC, hbmOldSource );
::SelectObject( destDC.m_hDC, hbmOldDest ); return hbmResult;
}
1、首先,打开vc6.0,建立程序编写页面,建立C语言环境,声明两个整数型变量。
2、随后,打出新的前三行,由于规律不明显,就用printf语句手动输入,要仔细观察模版。
3、观察可得,中间三行相同,就可以使用for循环,循环三行,每行的个数要仔细计算,模版很重要。
4、随后的七列逐渐减少,同样使用for循环进行循环七列递减的运算,这样还剩下最后一列。
5、最后一列,只有一个符号,相同于前三行,就是用printf语句直接编写最后一行。
6、这样就完成了程序的编写,这样就可以进行编译了,可以看到编译结果0错误,0警告,就可以运行程序了。
7、运行成功,看到程序运行框中出现了清晰的心图形,成功编程。
在计算机绘图过程中,经常需要进行绘图变换,主要包括二维图形变换和三维图形变换。这一部分讨论二维图形变换,其内容有用户坐标到屏幕坐标的变换、图形的比例变换、对称变换、错切变换、旋转变换、平移变换和复合变换等。后面讲到了二维剪裁,即线段裁剪与多边形裁剪。
第一节 用户坐标到屏幕坐标变换
假设纸上有一个图形,要用计算机把它在屏幕上画出来。那么首先遇到的问题是,纸上的图形采用的坐标是实数域域中的直角坐标系或是极坐标系,统称为用户坐标系。而屏幕上采用的坐标系是整数域中直角坐标系,这类坐标系统称为设备坐标系。因此用户坐标系中图形需要经过变换才能绘制在屏幕上,显然这个变换的内容包括: 1)将用户坐标系中任意范围区域转换到屏幕某个范围区域,从而用户坐标系此范围区域内的图形也转换到屏幕上该范围区域内。 2)用户坐标系此区域内图形上的坐标值转换到屏幕上该范围区域内后不一定是整数,取整后才成为该范围区域内的屏幕坐标值。 3)用户坐标右手系到屏幕坐标左手系的坐标轴方向变换。 4)当屏幕坐标系水平方向与垂直方向刻度不等(即像素间距不等)时,为保持图形不走样,还要进行比例变换。下面介绍这些内容的具体计算问题。
1.窗口到视口的变换
更确切地说,是实际图形到屏幕图形的转换。有时也称为数据规格化。
在用户坐标系中,指定一矩形域以确定要显示(或绘制)的图形部分,这个矩形区域称为窗口。在屏幕上可任选一矩形域以显示(或绘制)窗口内的图形,该域称为视口。如图2-1所示。
一般视窗口的四条边界分别为:
左边界 x=x1、右边界 x=x2.下边界 y=y1,上边界y=y2。
视口的四条边界分别为:
左边界sx=sx1,右边界sx=sx2,上边界sy=sy1,下边界sy=sy2。
经变换后应有,窗口的上边界线段(或下边界线段)长x2-x1变换成视口上边界线段(或下边界线段)长sx2-sx1。设其比例变换因子为k1,则可得
k1*(x2-x1)=sx2-sx1
k1=(sx2-sx1)/(x2-x1)
对窗口内任一x坐标(x1<=x<=x2)变换后为视口内水平方向sx坐标(sx1<=sx<=sx2)。由上述有:
k1*(x-x1)=sx-sx1
sx=sx1+k1*(x-x1)
=sx1+(x-x1)*(sx2-sx1)/(x2-x1)
同样,经变换后窗口的左边界线段(或右边界线段)长y2-y1变换成视口左边界线段(或右边界线段)长sy2-sy1。设其比例变换因子为k2,则可得
k2*(y2-y1)=sy2-sy1
k2=(sy2-sy1)/(y2-y1)
对窗口内任一y坐标(y1<=y<=y2)变换后为视口内垂直sy坐标(sy1<=sy<=sy2),应有
k2*(y-y1)=sy-sy1
sy=sy1+k2*(y-y1)
=sy1+(y-y1)*(sy2-sy1)/(y2-y1)
于是对窗口内图形上任一点坐标(x,y)变换到屏幕上视口内成为(sx,sy),则
sx=sx1+(x-x1)*(sx2-sx1)/(x2-x1)
sy=sy1+(y-y1)*(sy2-sy1)/(y2-y1)
写成简式
sx=k1*x+a
sy=k2*y+b
这里
a=sx1-k1*x1
b-sy1-k2*y1
k1=(sx2-sx1)/(x2-x1)
k2=(sy2-sy1)/(y2-y1)
2. 实型值到整型值的变换
上面对窗口内图形上任一点坐标(x,y)变换到屏幕上视口内成为(sx,sy),
sx=k1*x+a
sy=k2*y+b k1,k2,a,b同上
这样计算出来的sx,sy一般是实型值,而屏幕上视口内屏幕坐标是整型值,因此要将sx,sy实型值转换成屏幕坐标系的整型值。这可以通过四舍五入的方法将实型值的绝对值圆整化。由于C语言中已经替我们想到了这点,它提供的函数可以自动取整,因此用户在调用标准函数在屏幕上绘图时一般不需要考虑这个问题。当然也可以用赋值的类型转换规则来实现实型值到整型值的变换。
3. y坐标值方向变换
一般屏幕坐标系是直角左手系,y轴方向向下为正,原点在屏幕的左上角,如图2-2所示。
窗口内图形上任一点(x,y)变换到视口内成为(sx,xy),而(x,y)是相对用户坐标系(直角右手系)的。(sx,sy)是相对屏幕坐标系(直角左手系)的,因此y轴方向相反。为使窗口内图形变换到视口上图形其形状一致,需将视口上图形y轴方向变换成窗口内图形y轴方向。这只要将求得的视口内各点的sy整型坐标均用sy2去减,即sy2-sy(整型)代替sy(整型)即可,经这样的坐标轴方向变换后得到的视口内图形与窗口内图形一致。
4.长宽比例变换
屏幕坐标系x方向与y方向上的刻度可能不一样,这取决于水平方向像素间距与垂直方向偈素间距大小是否一致。如果两个方向的刻度不相等,那么用户坐标系下一个正方形将显示(或绘制)成为一个长方形有,一个圆将成为一个椭圆。
为保持原图形的长宽比。使图形显示(或绘制)后不走样,需求出屏幕上两侍标轴刻度的比值(即纵横比)。可以用函数getaspectratio()(见前文所述)返回x方向和y方向的比例数,从而求得这个比值。再瘵原图形y方向坐标乘以该比值,这样显示(或绘制)出来的图形应不走样。若不考虑图形的走样,就不必作这个变换。
第二节 二维几何变换
图形的几何变换一般是指对图形的几何信息经过变换后产生新的图形,图形几何变换既可以看作是坐标系不动而图形变动,变动后的图形在坐标系中的坐标值发生变化;出可以看作图形不动而坐标系变动,变动后的图形在新坐标系下具有新的坐标值。这两种情况本质上都是一样的,都是图形由新的坐标值表示,因此是新产生的图形。图形几何变换包括比例变换、对称变换、错切变换、旋转变换、平移变换及其复合变换。图形上所有的点在几何变换前后的坐标关系一般用解析几何方法可以求得,但这些几何关系用矩阵方法表示,运算更为方便。
一、基本变换
图形基本几何变换是指比例变换、对称变换、错切变换、旋转变换和平移变换等。除平移变换外,这里其它四种几何变换都可以用组成图形的点向量(或称1×2阶矩阵)和2×2阶变换矩阵相乘表示,而平移变换需引入新方法来实现。
1、比例变换
设图形上一点P(x,y),经比例变换后成为新的菜上一点P'(x',y'),即有
x'=a*x
y'=d*y
式中a,d为比例因子
将此比例变换式写成矩阵式得
a 0
[x' y']=[x y] = [x y] * T
0 d
a 0
这里 T= 叫做比例变换矩阵。若a=d,则x,y坐标按同一比例变换。
0 d
当a=d>1时,图形放大;当0<a=d<1时,图形缩小。
若a≠d,则x,y坐标按各自不同比例变换。
3 0
例 1: 设有比例变换矩阵 T= , 三角形abc经过比例变换成为三角形a'b'c'。
0 1
如图2-3所示。
3 0
a [1 2] = [3 2] a'
0 1
3 0
b [2 2] = [6 2] b'
0 1
3 0
c [2 3] = [6 3] c'
0 1
2. 对称变换
图形上一点P(x,y)经关于原点对称变换后成为新图形上一点P'(x',y'),则
x' = -x
y' = -y
写成矩阵形式成为
-1 0
[x' y'] = [x y] = [x y] * T
0 -1
-1 0
这里 T = 为关于原点对称变换矩阵。
0 -1
若关于x轴对称,则对称变换的矩阵表示为
1 0
[x' y'] = [x y] = [x y] * T
0 -1
1 0
于是关于x轴对称变换矩阵 T =
0 -1
若关于y轴对称,则对称变换的矩阵表示为
-1 0
[x' y'] = [x y] = [x y] * T
0 1
-1 0
于是关于y轴对称变换矩阵 T =
0 1
若关于直线y = -x对称,则对称变换矩阵表示为
0 -1
[x' y'] = [x y] = [x y] * T
-1 0
0 1
于是关于直线 y = x对称变换矩阵 T =
1 0
各种对称变换的图形均可由实例程序绘出,参见实例程序图形。
3. 错切变换
对图形的任一点P(x,y),作线性变换如下
x' = x + by
y' = y + dx
式中b,d为不全为零的常 数,点P'(x',y')为新图形上相应的点,这个变换称为图形的错切变换。
错切变换的矩阵表示为
1 d
[x' y'] = [x y] = [x y] * T
b 1
1 d
T = 叫做错切变换矩阵(b,d不全为零)。
b 1
① 当d=0时,x'=x+by,y'=y,这时图形的y坐标不变,x坐标值随(x,y)及系数b作线性变化。若b>0时,图形沿x轴作错切位移;若b<0,图形沿x轴负向作错切位移。
② 当b=0时,x'=x,y'=dx+y,此时图形的x坐标不变y坐标随(x,y)及系数d作线性变化。如d>0,图形沿y轴正向作错切位移;如d<0,图形沿y轴负向作错切位移。
③ 当b≠0且d≠0时,x'=x+by,y'=y+dx,图形沿x,y两个方向作错切位移。
1 2
例 2: 设有错切变换 矩阵 T = ,正方形abcd经此错切变换成为四边形a'b'c'd',
0 1
如图2-4所示。
1 2
a [0 0] = [0 0] a'
0 1
1 2
b [1 0] = [1 2] b'
0 1
1 2
c [1 1] = [1 3] c'
0 1
1 2
d [0 1] = [0 1] d'
0 1
4. 旋转变换
设图形上一点P(x,y)绕原点逆时针旋转θ角后成为新的图形上一点P'(x',y'),则由解析几何方法可得
x' = xcosθ + ysinθ
y' = -xsinθ + ycosθ
用矩阵表示为
cosθ -sinθ
[x' y'] = [x y] = [x y] * T
sinθ cosθ
cosθ -sinθ
这里 T = 为绕原点逆时针变换矩阵。若顺时针旋转时,θ角为负值。
sinθ cosθ
5. 平移变换
若图形上一点P(x,y)沿x轴平移 l距离,沿y轴平移m距离后成为新的图形上一点P'(x',y'),则有
x' = x + l
y' = y + m
式中l,m不全为零,这称为平移变换。但此变换无法用组成图形的点向量和2×2阶变换矩阵相乘来实现。
用二维点向量和2×2阶矩阵相乘不能表示图形的平移变换,那么自然会想到用三维点向量和3×3阶矩阵相乘来实现图形的平移变换。因此对图形上二个坐标的点向量需要添加一个坐标,使之成为三维点向量以便与三阶矩阵相乘,进而实现用矩阵表示平移变换。实际上就是对上面的二个坐标变换式添加第三个坐标变换式,即成为
x' = x + l
y' = y + m
k = k
这第三个坐标变换式(即k=k)必须是恒等式,因为不需作变换,本质上是为了进行矩阵运算而引入的。
将此三个变换式(仍然是图形的平移变换,不妨将k = k取成1=1)写成矩阵得
1 0 0
[x' y' l] = [x y l] 0 1 0 = [x y 1] * T
l m 1
1 0 0
显然 T = 0 1 0 为图形的平移变换矩阵。
l m 1
这里通过对原图形上二维点向量引进第三个坐标成为三维点向量,从而使原图形的平移变换 能用矩阵表示。同样其它基本变换也可以如此用矩阵表示。因此图形的基本变换都可以在这样的三维点向量下统一、整齐用矩阵表示。这样的三维点向量称为齐次点向量,也叫三维齐次坐标点,简称三维齐次坐标。只有在三维齐次坐标下,二维几何变换才都可以用矩阵表示。下面再进一步讨论一下齐次坐标的优点。
引用齐次坐标后,可将上面各种基本变换矩阵统一在一个三阶矩阵中。即
a b 0
T = c d 0
l m 1
式中左上角二阶矩阵实现比例、对称、错切、旋转等变换,左下角1×2阶矩阵实现平移变换,其中a,b,c,d,l,m只要赋以相应的值,并建立图形上点的齐次坐标(即在图形上点的坐标后引入第三个坐标1),这样就可以用图形上点的三维齐次坐标与此三阶矩阵相乘来表示三维图形的基本几何变换了。而变换后,不用考虑第三个坐标1,前面两个坐标就反映了图形的整个变换情况。
用齐次坐标表示一个图形上的点,可以有多种表示,如(6,8,1)、(12,16,2)、(30,40,5)等均表示图形上同一个点(6,8)。这样,齐次坐标可以表示计算机无法容纳的数。例如当计算机的字长为16位时,它能表示的最大整数为216-1=32767。若点坐标为(80 000,40 000),则计算机无法表示。但用齐次坐标可表示为(20 000,10 000,1/4),经过处理后再用第三个坐标支除前面两个坐标,从而得到原来通常的坐标。
齐次坐标优点很多,在计算机绘图中都采用这种表示来处理图形。下面介绍的图形复合几何变换就是如此。
二、复合变换
图形的复合几何变换是指图形作一次以上的基本几何变换,变换结果是每次基本变换矩阵的乘积。图殂的复合几何变换简称复合变换。
1. 复合平移
若对图形首先作平移变换 T1,然后再作平移变换T2,相应的平移变换矩阵分别为
1 0 0
T1 = 0 1 0
l1 m1 1
1 0 0
T2 = 0 1 0
l2 m2 1
则变换结果为复合平移变换T,其复合平移变换矩阵为
T = T1 * T2
1 0 0 1 0 0
= 0 1 0 * 0 1 0
l1 m1 1 l2 m2 1
1 0 0
= 0 1 0
l1+l2 m1|m2 1
PHotoshop快捷健:
PHOTOSHOP热键一览表,工具箱(多种工具共用一个快捷键的可同时按加此快捷键选取) 矩形、椭圆选框工具 || 裁剪工具 ||
移动工具 ||套索、多边形套索、磁性套索
〓正文〓
工具箱(多种工具共用一个快捷键的可同时按加此快捷键选取)
矩形、椭圆选框工具
裁剪工具
移动工具
套索、多边形套索、磁性套索
魔棒工具
喷枪工具
画笔工具
像皮图章、图案图章
历史记录画笔工具
像皮擦工具
铅笔、直线工具
模糊、锐化、涂抹工具
减淡、加深、海棉工具
钢笔、自由钢笔、磁性钢笔
添加锚点工具
删除锚点工具
直接选取工具
文字、文字蒙板、直排文字、直排文字蒙板
度量工具
直线渐变、径向渐变、对称渐变、角度渐变、菱形渐变
油漆桶工具
吸管、颜色取样器
抓手工具
缩放工具
默认前景色和背景色
切换前景色和背景色
切换标准模式和快速蒙板模式
标准屏幕模式、带有菜单栏的全屏模式、全屏模式
临时使用移动工具
临时使用吸色工具
临时使用抓手工具
打开工具选项面板
快速输入工具选项(当前工具选项面板中至少有一个可调节数字) 至
循环选择画笔 或
选择第一个画笔 +
选择最后一个画笔 +
建立新渐变(在”渐变编辑器”中) +
文件操作
新建图形文件 +
用默认设置创建新文件 ++
打开已有的图像 +
打开为... ++
关闭当前图像 +
保存当前图像 +
另存为... ++
存储副本 ++
页面设置 ++
打印 +
打开“预置”对话框 +
显示最后一次显示的“预置”对话框 ++
设置“常规”选项(在预置对话框中) +
设置“存储文件”(在预置对话框中) +
设置“显示和光标”(在预置对话框中) +
设置“透明区域与色域”(在预置对话框中) +
设置“单位与标尺”(在预置对话框中) +
设置“参考线与网格”(在预置对话框中) +
设置“增效工具与暂存盘”(在预置对话框中) +
设置“内存与图像高速缓存”(在预置对话框中) +
编辑操作
还原/重做前一步操作 +
还原两步以上操作 ++
重做两步以上操作 ++
剪切选取的图像或路径 +或 拷贝选取的图像或路径 +
合并拷贝 ++
将剪贴板的内容粘到当前图形中 +或
将剪贴板的内容粘到选框中 ++
自由变换 +
应用自由变换(在自由变换模式下)
从中心或对称点开始变换 (在自由变换模式下)
限制(在自由变换模式下)
扭曲(在自由变换模式下)
取消变形(在自由变换模式下)
自由变换复制的象素数据 ++
再次变换复制的象素数据并建立一个副本 +++
删除选框中的图案或选取的路径
用背景色填充所选区域或整个图层 +或+
用前景色填充所选区域或整个图层 +或+
弹出“填充”对话框 +
从历史记录中填充 ++ 图像调整
调整色阶 +
自动调整色阶 ++
打开曲线调整对话框 +
在所选通道的曲线上添加新的点(‘曲线'对话框中) 在图象中加点按
在复合曲线以外的所有曲线上添加新的点(‘曲线'对话框中) +
加点按
移动所选点(‘曲线'对话框中) ///
以10点为增幅移动所选点以10点为增幅(‘曲线'对话框中) +
选择多个控制点(‘曲线'对话框中) 加点按
前移控制点(‘曲线'对话框中) +
后移控制点(‘曲线'对话框中) ++
添加新的点(‘曲线'对话框中) 点按网格
删除点(‘曲线'对话框中) 加点按点
取消选择所选通道上的所有点(‘曲线'对话框中) +
使曲线网格更精细或更粗糙(‘曲线'对话框中) 加点按网格
选择彩色通道(‘曲线'对话框中) +
选择单色通道(‘曲线'对话框中) +
打开“色彩平衡”对话框 +
打开“色相/饱和度”对话框 +
全图调整(在色相/饱和度”对话框中) +
只调整红色(在色相/饱和度”对话框中) +
只调整黄色(在色相/饱和度”对话框中) +
只调整绿色(在色相/饱和度”对话框中) +
只调整青色(在色相/饱和度”对话框中) +
只调整蓝色(在色相/饱和度”对话框中) +
只调整洋红(在色相/饱和度”对话框中) +
去色 ++
反相 +
图层操作
从对话框新建一个图层 ++
以默认选项建立一个新的图层 +++
通过拷贝建立一个图层 +
通过剪切建立一个图层 ++
与前一图层编组 +
取消编组 ++
向下合并或合并联接图层 +
合并可见图层 ++
盖印或盖印联接图层 ++
盖印可见图层 +++
将当前层下移一层 +
将当前层上移一层 +
将当前层移到最下面 ++
将当前层移到最上面 ++
激活下一个图层 +
激活上一个图层 +
激活底部图层 ++
激活顶部图层 ++
调整当前图层的透明度(当前工具为无数字参数的,如移动工具) 至
保留当前图层的透明区域(开关)
投影效果(在”效果”对话框中) +
内阴影效果(在”效果”对话框中) +
外发光效果(在”效果”对话框中) +
内发光效果(在”效果”对话框中) +
斜面和浮雕效果(在”效果”对话框中) +
应用当前所选效果并使参数可调(在”效果”对话框中)
图层混合模式
循环选择混合模式 +或
正常 ++
阈值(位图模式) ++
溶解 ++
背后 ++
清除 ++
正片叠底 ++
屏幕 ++
叠加 ++
柔光 ++
强光 ++
颜色减淡 ++
颜色加深 ++
变暗 ++
变亮 ++
差值 ++
排除 ++
色相 ++
饱和度 ++
颜色 ++
光度 ++
去色 海棉工具+++
加色 海棉工具+++
暗调 减淡/加深工具+++
中间调 减淡/加深工具+++
高光 减淡/加深工具+++
选择功能
全部选取 +
取消选择 +
重新选择 ++
羽化选择 ++
反向选择 ++
路径变选区 数字键盘的
载入选区 +点按图层、路径、通道面板中的缩约图
滤镜
按上次的参数再做一次上次的滤镜 +
退去上次所做滤镜的效果 ++
重复上次所做的滤镜(可调参数) ++
选择工具(在“3D变化”滤镜中)
立方体工具(在“3D变化”滤镜中)
球体工具(在“3D变化”滤镜中)
柱体工具(在“3D变化”滤镜中)
轨迹球(在“3D变化”滤镜中)
全景相机工具(在“3D变化”滤镜中)
视图操作
显示彩色通道 +
显示单色通道 +
显示复合通道
以CMYK方式预览(开关) +
打开/关闭色域警告 ++
放大视图 +
缩小视图 +
满画布显示 +
实际象素显示 ++
向上卷动一屏
向下卷动一屏
向左卷动一屏 +
向右卷动一屏 +
向上卷动10 个单位 +
向下卷动10 个单位 +
向左卷动10 个单位 ++
向右卷动10 个单位 ++
将视图移到左上角
将视图移到右下角
显示/隐藏选择区域 +
显示/隐藏路径 ++
显示/隐藏标尺 +
显示/隐藏参考线 +
显示/隐藏网格 +
贴紧参考线 ++
锁定参考线 ++
贴紧网格 ++
显示/隐藏“画笔”面板
显示/隐藏“颜色”面板
显示/隐藏“图层”面板
显示/隐藏“信息”面板
显示/隐藏“动作”面板
显示/隐藏所有命令面板
显示或隐藏工具箱以外的所有调板 +
文字处理(在”文字工具”对话框中)
左对齐或顶对齐 ++
中对齐 ++
右对齐或底对齐 ++
左/右选择 1 个字符 +/
下/上选择 1 行 +/
选择所有字符 +
选择从插入点到鼠标点按点的字符 加点按
左/右移动 1 个字符 /
下/上移动 1 行 /
左/右移动1个字 +/
将所选文本的文字大小减小2 点象素 ++
将所选文本的文字大小增大2 点象素 ++
将所选文本的文字大小减小10 点象素 +++
将所选文本的文字大小增大10 点象素 +++
将行距减小2点象素 +
将行距增大2点象素 +
将基线位移减小2点象素 ++
将基线位移增加2点象素 ++
将字距微调或字距调整减小20/1000ems +
将字距微调或字距调整增加20/1000ems +
将字距微调或字距调整减小100/1000ems ++
将字距微调或字距调整增加100/1000ems ++
选择通道中白的像素(包括半色调)++
在Layers、Channels、Paths调色板上,按Alt单击这些调色板底部的工具图标时,对于有对话框的工具可调出相应的对话框来更改设置。
移动图层和选取框时,按住Shift键可做水平、垂直或45度角的移动,按键盘上的方向键可做每次lpixel的移动,按住Shift 键再按键盘上的方向键可做每次10pixel的移动。
在使用选取工具时,按Shift键拖动鼠标可以在原选取框外增加选取范围(开集);按Alt键拖动鼠标可以删除与原选取框重叠部分的选取范围;同时按Shift与Alt键拖动鼠标可以选取与原选取框重叠的范围(交集)。
调用Curves对话框时,按住Alt键于格线内单击鼠标可以增加网格线,提高曲线精度。
更改某一对话框的设置后,若要恢复为默认值,只要按住Alt键,Cancel键会变成Reset键,在Reset键上单击即可。
若要将某一图层上的图像拷贝到尺寸不同的图像窗口中央位置时,可以在拖动鼠标的同时按住Shift键,图像拖动到目的窗口后会自动居中。
若要将图像用于网络传输,可将图像模式设置为Indexed Color索引色彩色模式,有文件小、传输快的优点,如果再选择GIF89a Export(GIF输出),可以设置透明的效果,并将文件保存成GIF格式。
在使用自由变形(Layer/Free Transform)功能时,按Ctrl键并拖动某一控制点可以进行随意变形的调整;“Shift+Ctrl”键并拖动某一控制点可以进行倾斜调整;按Alt键并拖动某一控制点可以进行对称调整;按“Shift+Ctrl+Alt”键并拖动某一控制点可以进行透视效果的调整。
在layers调色板上,按住Ctrl用鼠标单击某一图层时,可载入该层图像成选取框(Background层除外,改名后可以)。
使用路径(Path)工具时的几个技巧:使用笔形(Pen)工具制作路径时按住Shift键可以强制路径或方向线成水平、垂直或45度角,按住Ctrl键可暂时切换到路径选取工具,按住Alt键将笔形光标在在黑色节点上单击可以改变方向线的方向,使曲线能够转折;按Alt键用路径选取(Direct
Selection)工具单击路径会选取整个路径;要同时选取多个路径可以按住Shift后逐个单击;使用路径选工具时按住“Ctrl+Alt”键移近路径会切换到加节点与减节点笔形工具。
若要切换路径(path)是否显示,可以按住Shift键后在路径调色板的路径栏上单击鼠标, 或者在路径调色版灰色区域单击即可.
若要一起执行数个宏(Action),可以先增加一个宏,然后录制每一个所要执行的宏。 若要在一个宏(Action)中的某一命令后新增一条命令,可以先选中该命令,然后单击调色板上的开始录制(Begin recording)图标,选择要增加的命令,再单击停止录制(Stop
recording)图标即可。
使用Filter/Render/Clouds滤镜时,若要产生更多明显的支纹图案,可先按住Alt键后再执行该命令;若要生成低漫射支彩效果,可先按住Shift键后再执行命令。
在使用Filter/Render/Lighting Effects滤镜时,若要在对话框内复制光源时,可先按住Alt键后再拖动光源即可实现复制。
若要在Color调色板上直接切换色彩模式,可先按住Shift键后,再将光标移到色彩条上单击即可。
3D MAX快捷健:
显示降级适配(开关)
适应透视图格点 ++
排列 +
角度捕捉(开关)
动画模式 (开关)
改变到后视图
背景锁定(开关) ++
前一时间单位
下一时间单位
改变到上(Top)视图
改变到底(Bottom)视图
改变到相机(Camera)视图
改变到前(Front)视图
改变到等大的用户(User)视图
改变到右(Right)视图
改变到透视(Perspective)图
循环改变选择方式 +
默认灯光(开关) +
删除物体
当前视图暂时失效
是否显示几何体内框(开关) +
显示第一个工具条 +
专家模式全屏(开关) +
暂存(Hold)场景 ++
取回(Fetch)场景 ++
冻结所选物体
跳到最后一帧
跳到第一帧
显示/隐藏相机(Cameras) +
显示/隐藏几何体(Geometry) +
显示/隐藏网格(Grids)
显示/隐藏帮助(Helpers)物体 +
显示/隐藏光源(Lights) +
显示/隐藏粒子系统(Particle Systems) +
显示/隐藏空间扭曲(Space Warps)物体 +
锁定用户界面(开关) +
匹配到相机(Camera)视图 +
材质(Material)编辑器
最大化当前视图 (开关) +
脚本编辑器
新的场景 +
法线(Normal)对齐 +
向下轻推网格 小键盘
向上轻推网格 小键盘
NURBS表面显示方式 +或+
NURBS调整方格1 +
NURBS调整方格2 +
NURBS调整方格3 +
偏移捕捉 ++
打开一个MAX文件 +
平移视图 +
交互式平移视图
放置高光(Highlight) +
播放/停止动画
快速(Quick)渲染 +
回到上一场景*作 +
回到上一视图*作 +
撤消场景*作 +
撤消视图*作 +
刷新所有视图
用前一次的参数进行渲染 +或
渲染配置 +或
在xy/yz/zx锁定中循环改变
约束到X轴
约束到Y轴
约束到Z轴
旋转(Rotate)视图模式 +或
保存(Save)文件 +
透明显示所选物体(开关) +
选择父物体
选择子物体
根据名称选择物体
选择锁定(开关)
减淡所选物体的面(开关)
显示所有视图网格(Grids)(开关) +
显示/隐藏命令面板
显示/隐藏浮动工具条
显示最后一次渲染的图画 +
显示/隐藏主要工具栏 +
显示/隐藏安全框 +
*显示/隐藏所选物体的支架
显示/隐藏工具条 /
百分比(Percent)捕捉(开关) ++
打开/关闭捕捉(Snap)
循环通过捕捉点 +
声音(开关) 【】
间隔放置物体 +
改变到光线视图 +
循环改变子物体层级
子物体选择(开关) +
帖图材质(Texture)修正 +
全部解冻
根据名字显示隐藏的物体
刷新背景图像(Background) +++
显示几何体外框(开关)
视图背景(Background) +
用方框(Box)快显几何体(开关) +
打开虚拟现实 数字键盘
虚拟视图向下移动 数字键盘
虚拟视图向左移动 数字键盘
虚拟视图向右移动 数字键盘
虚拟视图向中移动 数字键盘
虚拟视图放大 数字键盘
虚拟视图缩小 数字键盘
实色显示场景中的几何体(开关)
全部视图显示所有物体 ++
*视窗缩放到选择物体范围(Extents)
缩放范围 ++
视窗放大两倍 +数字键盘
放大镜工具
视窗缩小两倍 +数字键盘
根据框选进行放大 +
加入(Add)关键帧
编辑(Edit)关键帧模式
编辑区域模式
编辑时间模式
展开对象(Object)切换
展开轨迹(Track)切换
函数(Function)曲线模式 或
锁定所选物体
向上移动高亮显示
向下移动高亮显示
向左轻移关键帧
向右轻移关键帧
位置区域模式
向下收拢 +
向上收拢 +
下一时间单位
前一时间单位
回到上一场景*作 +
撤消场景*作 +
绘制(Draw)区域
渲染(Render)
锁定工具栏(泊坞窗)
加入过滤器(Filter)项目 +
加入输入(Input)项目 +
加入图层(Layer)项目 +
加入输出(Output)项目 +
加入(Add)新的项目 +
加入场景(Scene)事件 +
编辑(Edit)当前事件 +
执行(Run)序列 +
新(New)的序列 +
撤消场景*作 +
CV 约束法线(Normal)移动 +
CV 约束到U向移动 +
CV 约束到V向移动 +
显示曲线(Curves) ++
显示控制点(Dependents) +
显示格子(Lattices) +
NURBS面显示方式切换 +
显示表面(Surfaces) ++
显示工具箱(Toolbox) +
显示表面整齐(Trims) ++
根据名字选择本物体的子层级 +
锁定2D 所选物体
选择U向的下一点 +
选择V向的下一点 +
选择U向的前一点 +
选择V向的前一点 +
根据名字选择子物体
柔软所选物体 +
转换到Curve CV 层级 ++
转换到Curve 层级 ++
转换到Imports 层级 ++
转换到Point 层级 ++
转换到Surface CV 层级 ++
转换到Surface 层级 ++
转换到上一层级 ++
转换降级 +
转换到控制点(Control Point)层级 ++
到格点(Lattice)层级 ++
到设置体积(Volume)层级 ++
转换到上层级 ++
进入编辑(Edit)UVW模式 +
调用*.uvw文件 +++
保存UVW为*.uvw格式的文件 +++
打断(Break)选择点 +
分离(Detach)边界点 +
过滤选择面 +
水平翻转 +++
垂直(Vertical)翻转 +++
冻结(Freeze)所选材质点 +
隐藏(Hide)所选材质点 +
全部解冻(unFreeze) +
全部取消隐藏(unHide) +
从堆栈中获取面选集 +++
从面获取选集 +++
水平镜象 +++
垂直镜象 +++
水平移动 +++
垂直移动 +++
平移视图 +
象素捕捉
平面贴图面/重设UVW +++
水平缩放 +++
垂直缩放 +++
移动材质点
旋转材质点
等比例缩放材质点
焊接(Weld)所选的材质点 ++
焊接(Weld)到目标材质点 +
Unwrap的选项(Options) +
更新贴图(Map) +++
将Unwrap视图扩展到全部显示 ++
框选放大Unwrap视图 +
将Unwrap视图扩展到所选材质点的大小 +++
缩放到Gizmo大小 +
缩放(Zoom)工具
建立(Create)反应(Reaction) ++
删除(Delete)反应(Reaction) ++
编辑状态(State)切换 ++
设置最大影响(Influence) +
设置最小影响(Influence) +
设置影响值(Value) ++
初始化
更新
MAXScript收听器 F11
NURBS镶嵌预设1 Ctrl+1
NURBS镶嵌预设2 Ctrl+2
NURBS镶嵌预设3 Ctrl+3
NURBS阴影网格开关 Alt+L, Ctrl+4
按名称取消隐藏 5
百分比捕捉(开关) Shift+Ctrl+P
保持 Alt+Ctrl+H
保存文件 Ctrl+S
备份一单位时间 , 背景锁定(开关) Alt+Ctrl+B
边界面开关 F4
变换标志框(开关) X
变换标志框大小- -
变换标志框大小+ =
变换标志框卷标(开关) 变换标志框平面(开关) 变换标志框中心(开关) 变换输入 F12 播放动画 / 捕捉(?/pre>
分享给你的朋友吧:
对我有帮助
1
回答时间:2006-3-30 13:29
|
回答者:
|
擅长领域:
暂未定制
参加的活动:
暂时没有参加的活动
提问者对于答案的评价:
首先谢谢各位。但我只能给一个人加分
一个完整的程序是由什么构成的?
一个完整的程序是由计算机等具有信息处理能力的装置执行的代码化指令序列组成。计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。它是指用来描述程序的内容、组成、设计、功能规格、开发情况...
关于软件工程专业的介绍
不论是什么软件工程模型,总是少不了图1.1中的各个环节。本书擗开具体的软件工程模型,顺序讲述人员管理、项目管理、可行性与需求分析、系统设计、程序设计、测试,以及维护与再生工程。其中程序设计部分以C++\/C语言为例。 四、软件体系结构和工具的选择 软件体系结构表示了一个软件系统的高层结构,主要特点有:1)软件...
简述虚拟仪器技术及LabVIEW编程课程的认识和理解
AcqKnowledge是一个功能强大、十分灵活的软件包,它使用下拉式菜单和对话框,无需学习另外的编程语言,就可以设计出复杂的数据采集、模拟、触发和分析系统。主要包括实时数据记录、分析和滤波,离线数据分析与处理,数据的各种图形表示等功能。该系统可以与虚拟仪器LabVIEW联接,提供可视化图形编程环境。它的主要应用领域有:※ ...
glsl语言和c语言的区别·也就是不同的地方有哪些,明确点。谢谢喽_百...
glsl语言和c语言的区别·也就是不同的地方有哪些,明确点。谢谢喽 15 我来答 1个回答 #热议# 生活中有哪些成瘾食物?匿名用户 2015-10-06 展开全部 变量GLSL的变量命名方式与C语言类似。变量的名称可以使用字母,数字以及下划线,但变量名不能以数字开头,还有变量名不能以gl_作为前缀,这个是GLSL保留的...
python常用到哪些库?
2. SciPy 在NumPy库的基础上增加了众多的数学、科学及工程计算中常用的库函数,如线性代数、常微分方程数值求解、信号处理、图像处理、稀疏矩阵等,可进行插值处理、信号滤波,以及使用C语言加速计算。3. Pandas 基于NumPy的一种工具,为解决数据分析任务而生。纳入大量库和一些标准的数据模型,提供高效地...
信息管理与信息系统专业的课程都有哪些?
(2)管理类专业课程:西方经济学原理(宏观和微观)、管理学原理、市场调查与预测、市场营销概论、财务管理、基础会计学、网络营销基础与实践、统计学、财务管理、运筹学等 (3)计算机类专业课程:C语言程序设计、计算机硬件技术概论、网页设计与制作技术、数据库应用、数据结构、面向对象程序设计(Java)、...
什么网络工程专业?
一、培养目标 培养德、智、体等全面发展的,掌握计算机网络工程技术的基本理论、方法与应用,从事计算机网络工程及相关领域中的系统研究、设计、运行、维护和管理的高级工程技术人才。 二、课程设置 主要的课程体系包括: 1、公共基础课程: 主要包括高等数学、大学物理、英语、体育、政治理论、计算机文化基础、C语言 等课程...
计算机设计专业有哪些?
功能特点:从功能上看,Photoshop可分为图像编辑、图像合成、校色调色及特效制作部分。图像编辑是图像处理的基础,可以对图像做各种变换如放大、缩小、旋转、倾斜、镜像、透视等。也可进行复制、去除斑点、修补、修饰图像的残损等。这在婚纱摄影、人像处理制作中有非常大的用场,去除人像上不满意的部分,进行...
怎么用vb制作俄罗斯方块游戏啊,简单点的。
我们这个小游戏也可以用C语言来实现,在程序的编程上没有VB语言方便实用,C语言和VB语言之间存在很多的共同点,虽然语法方面有点差异,但是在编程思路上完全一样,VB能够实现很多C#不能做到的功能,如When语句、Optional参数、局部Static变量、对象实例访问静态方法、Handles绑定事件、On Error处理异常、Object直接后期绑定等等...
数学有哪些专业
微分几何:微积分方法研究几何图形的性质 偏微分方程:解方程,方程含有多元未知数,未知数是以微分或者积分形式出现的 初等数论:初等方法研究数的性质 *** 论:几乎全部数学都能从 *** 出发进行描述 概率论:用排列组合和微积分研究随机现象 数理统计学:用概率论方法统计事物的规律 英语:大学四级 C语言:程...
褒炎降脂: #include <stdio.h> void doprint(int i,int n) { int j; for(j=1;j<n+1-i;j++) { printf("%s"," "); } for(j=1;j<i+1;j++) { printf("%s","* "); } printf("%s","\n"); } void main() { int i,j; int n=3; //你要修改的修改的就zd是这个数回 for(i=1;i<n+1;i++) { doprint(i,n); } for(i=n-1;i>0;i--) { doprint(i,n); } } 还有的方法答是直接打印.
无极县18513421032: 求一个用C语言绘制的图形代码 - ?
褒炎降脂: #include int main() { int i=3; int j; int k; for(j=0;j<4;j++,i--) { for(k=i;k>0;k--) { printf(" "); } for(k=0;k<2*j+1;k++) { printf("*"); } printf("\n"); } for(i=1,j=3;j>0;j--,i++) { for(k=i;k>0;k--) { printf(" "); } for(k=0;k<2*j-1;k++) { printf("*"); } printf("\n"); } }
无极县18513421032: 用C语言编写一个输出图形的小程序. - ?
褒炎降脂: 法1: #include <stdio.h> #include<conio.h> void main() { int i,j; for(i=0;i<4;i++) { for(j=1;j<4-i;j++) printf(" "); for(j=4-i;j<=4+i;j++) printf("*"); printf("\n"); } for(i=4;i<7;i++) { for(j=0;j<i-3;j++) printf(" "); for(j=i-3;j<=9-i;j++) printf("*"); printf("\n"); ...
无极县18513421032: C语言编写程序输出一下图形(程序用循环实现) - ?
褒炎降脂: #include<stdio.h> int main() { int i=5,j,k=5; for(j=1;j<=i;j++) { for(k=6-j;k>=1;--k) { printf("*"); } printf("\n"); } return 0; }
无极县18513421032: 编写一个c程序,输出以下图案* *** ***** - ?
褒炎降脂: 程序如下: #include<stdio.h> int main() { int i,j,k; for(i=1;i<=4;i++) //先打印上边的四行 { for(j=1;j<=4-i;j++) //控制要打印的空格数量 printf(" "); for(k=1;k<=2*i-1;k++) //控制要打印的星号数 printf("*"); printf("\n"); } for(i=1;i<=3;i++) { for(j=1;j<...
无极县18513421032: C语言编写一个简单的制图程序 - ?
褒炎降脂: #include <windows.h> int main(){ HDC hdc; HBRUSH hBrush; HPEN hPen; RECT rect; rect.left=0; rect.right=300; rect.top=0; rect.bottom=300; hdc=GetDC(NULL); hBrush=CreateSolidBrush(RGB(255,0,0)); SelectObject(hdc,hBrush); Rectangle(hdc,...
无极县18513421032: 求 C程序,输出如下图形 - ?
褒炎降脂: //语言:C,编译环境:Microsoft Visual C++ 6.0 //代码如下: #include <stdio.h> void main() { for (int i=0;i<5;i++) {for (int j=0;j<i;j++) { printf(" "); } for (int k=0;k<5;k++) { printf("*"); } printf("\n"); } }//如果把代码改成如下: #include <stdio.h> ...
无极县18513421032: 利用C语言实现二维图形的变换 - ?
褒炎降脂: 你先看看吧,思路大概就是这样,不懂的问我. #include<stdio.h> #include<math.h> #include<iostream> using namespace std; struct point { float x; float y; }; void translation(point*pt, float xp,float yp,int num)//num代表点的个数 { for(int i=0;i<num;i++...
无极县18513421032: 如何用C语言程序,输出以下图形 // ***** ***** ***** ***** - ?
褒炎降脂: //一行输出 #include<stdio.h>int main(void){printf("// ***** ***** ***** *****");return 0; }//分段输出 #include<stdio.h>int main(void){printf("//");for(int i=1;i<=4;i++){printf(" ****");}return 0; }(还有很多种输出法)
无极县18513421032: 编写一个程序,输出如下图形:(用C语言) 1 22 333 4444 55555 - ?
褒炎降脂: 我这个保证解决!#include "stdio.h" main() { int x,i,a; printf("请输入一个范围"); scanf("%d",&x); for(i=1;i