|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
c++是语言,其实C++和java的应用范围根本就不一样的。在java应用的领域内,c++是不合适的。所以微软才搞了C#和Java对抗。编程|收集 1.简述三类二维坐标体系之间的不异点和区分。
【解答】
GDI+中的二维笛卡儿坐标体系分为三类:全局坐标体系、页面坐标体系和设备坐标体系。
三类坐标体系的不异点:它们都有坐标原点和向右和向下的x轴和y轴。
三类坐标体系的区分:全局坐标体系能够举行扭转、平移等操纵。页面坐标体系与设备坐标体系都是以设备的左上角为坐标原点,X程度向右为正,Y垂直向下为正。页面坐标体系与设备坐标体系的差别在于X,Y的单元分歧:页面坐标系中的X,Y单元能够恣意设定,如英寸、毫米等;而设备坐标系中,只要一种单元,那就是点(point)大概像素(pixel)。页面坐标系是不克不及变动的,它是一个参照尺度,将全局坐标终极转换为设备坐标。
2.简述创立Graphics类工具的三种办法。
【解答】
(1)在窗体或控件的Paint事务中间接援用Graphics工具。在为窗体创立绘制代码时,一样平常利用此办法猎取对图象的援用。
(2)从以后窗体猎取对Graphics工具的援用。注重这类工具只要在处置以后Windows窗体动静的过程当中无效。假如想在已存在的窗体或控件中画图,可使用此种办法。
(3)从承继自图象的任何工具创立Graphics工具。这个办法合用于必要变动已存在的
图象。
3.同时创立多个矩形并用红黑相间的色彩举行添补。
【解答】
(1)新建一个Windows使用程序,定名为“FillMultiRectangle”,调剂窗体到得当巨细。变动“Form1.cs”为“FormFillMultiRectangle.cs”。
(2)切换到代码体例,增加称号空间援用:
usingSystem.Drawing.Drawing2D;
(3)双击窗体的属性面板里事务页中的Paint事务,增加FormFillMultiRectangle_Paint事务代码。
<P> privatevoidFormFillMultiRetangle_Paint(objectsender,PaintEventArgse)
{
Graphicsg=e.Graphics;
HatchBrushmybrush=newHatchBrush(HatchStyle.Cross,Color.Red,Color.Black);
Rectangle[]rect=
{
newRectangle(0,0,50,100),
newRectangle(50,100,100,50),
newRectangle(150,150,50,100),
};
g.FillRectangles(mybrush,rect);
g.Dispose();
}
(4)了局如图所示。
4.利用Label控件分离以矩形、椭圆和圆形的体例显现图片,并包管图片完整由绘制工具的边框决意。
【解答】
(1)新建一个Windows使用程序,定名为“ShowImageExe”,调剂窗体到得当巨细。变动“Form1.cs”为“FromShowImageExe.cs”。
(2)切换到代码体例,增加称号空间援用:
usingSystem.Drawing.Drawing2D;
(3)增加四个Button控件分离定名为“buttonOpenFile”、“buttonRectangle”、“buttonEllipse”、“buttonRound”,和一个openFileDiolog和label控件。
(4)在Form类下声明两个公有变量filename和flag,分离用来纪录翻开的文件名和判别哪一个按钮的click工夫被触发。
privatestringfilename="";
privateintflag=0;
(5)增加【翻开文件】按钮的click事务
<P> privatevoidbuttonOpenFile_Click(objectsender,EventArgse)
{
openFileDialog1.ShowDialog();
filename=openFileDialog1.FileName;
label1.Refresh();
}
(6)在label1控件的paint事务下增加以下代码:
<P> privatevoidlabel1_Paint(objectsender,PaintEventArgse)
{
if(filename.Trim()=="")
return;
Bitmapmybitmap=newBitmap(filename);
Graphicsg=e.Graphics;
TextureBrushmybrush=newTextureBrush(mybitmap,WrapMode.Clamp);
//包管图片完整由绘制工具的边框决意
switch(flag)
{
case1:
g.FillRectangle(mybrush,label1.ClientRectangle);
break;
case2:
g.FillEllipse(mybrush,label1.ClientRectangle);
break;
case3:
g.FillEllipse(mybrush,(label1.Width-label1.Height)/2,0,label1.Height,label1.Height);
break;
}
}
(7)在其他几个按钮的click事务平分别增加以下代码:
<P> privatevoidbuttonRectangle_Click(objectsender,EventArgse)
{
flag=1;
label1.Refresh();
}
privatevoidbuttonEllipse_Click(objectsender,EventArgse)
{
flag=2;
label1.Refresh();
}
privatevoidbuttonRound_Click(objectsender,EventArgse)
{
flag=3;
label1.Refresh();
}
(8)了局如图所示。
5.使用PictureBox控件和Panel控件完成利用转动条扫瞄年夜图片。
【解答】
因为Picturebox控件在显现图片时不克不及间接利用转动条,以是必需借助Panel控件完成以转动条的体例扫瞄年夜图片。详细操纵步骤以下:
(1)新建一个Windows使用程序,定名为“scrollBar”,调剂窗体到得当巨细。变动“Form1.cs”为“FormScrollBar.cs”。
(2)切换到代码体例,增加称号空间援用:
usingSystem.Drawing.Drawing2D;
(3)在窗体上分离增加一个button控件定名为“buttonOpenFile”,一个openFileDiolog控件,Picturebox和Panel控件各一个,将Panel控件的AutoScroll属性设为true。
(4)在“buttonOpenFile”控件的click事务中增加以下代码:
<P> privatevoidbuttonOpenFile_Click(objectsender,EventArgse)
{
openFileDialog1.ShowDialog();
if(openFileDialog1.FileName.Trim()=="")
return;
try
{
Bitmapmybitmap=newBitmap(openFileDialog1.FileName);
pictureBox1.Image=mybitmap;
}
catch(ExceptionErr)
{
MessageBox.Show("翻开文件毛病!","信息提醒",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
(5)了局如图所示。
6.完成对图片按恣意角度举行扭转、按恣意比例举行缩放、按恣意位移举行平移。
【解答】
(1)在窗体上增加六个label控件(个中label1用来显现图片)、一个button控件(用于翻开图片文件)和五个numericUpDown控件(分离用来选择图片缩放的比例、图片扭转的角度、图片位移的巨细)。
(2)在机关函数上方增加代码:
privatestringstrfilename="";
(3)在button控件的click事务里增加以下代码:
<P> privatevoidbutton1_Click(objectsender,EventArgse)
{
openFileDialog1.ShowDialog();
strfilename=openFileDialog1.FileName;
label1.Refresh();
}
(4)在每个numericUpDown控件的ValueChanged事务中增加以下代码:
label1.Refresh();
(5)在label1控件的paint事务中增加以下代码:
<P> privatevoidlabel1_Paint(objectsender,PaintEventArgse)
{
if(this.strfilename.Trim()=="")
return;
try
{
Bitmapmybitmap=newBitmap(strfilename);
Graphicsg=e.Graphics;
TextureBrushmybrush=newTextureBrush(mybitmap);
floatx=(float)(numericUpDownS1.Value/100);
floaty=(float)(numericUpDownS2.Value/100);
mybrush.ScaleTransform(x,y);
g.FillRectangle(mybrush,0,0,ClientRectangle.Width,ClientRectangle.Height);
floatr=(float)(numericUpDownR1.Value);
mybrush.RotateTransform(r);
g.FillRectangle(mybrush,0,0,ClientRectangle.Width,ClientRectangle.Height);
floattx=(float)(numericUpDownT1.Value);
floatty=(float)(numericUpDownT2.Value);
mybrush.TranslateTransform(tx,ty);
g.FillRectangle(mybrush,0,0,ClientRectangle.Width,ClientRectangle.Height);
}
catch(ExceptionErr)
{
MessageBox.Show("翻开文件毛病!","信息提醒",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
8-8-6
什么叫数据库怎么样?什么意思?你想单学数据库。(其实变成是我问的) |
|