计算机图形学考试,可惜考炸了,,,,
不过事先老师布置过作业,可以加分,
要用vb实现,类似windows MSPAINT功能的东西
具体功能要求如下,可以不用全都实现,选前面5个就行
(原图可以用mspaint来画)
1.将400*400大小24位位图的C:\src\pic01.bmp 由 蓝色 背景 全部改为 红色 背景,并另存为256色位图C:\Dst\pic01.bmp。
2.在400*400大小24位位图的C:\src\pic02.bmp 白色背景上 A(45,200) B(245,200)两点,用3号粗笔绘制完全水平的一条 蓝色直线,并另存为C:\Dst\pic02.bmp。
3.在400*400大小24位位图的C:\src\pic03.bmp 白色背景上 A(95,250) B(273,73)两点,用1号细笔绘制对角方向的一条红色直线,并另存为C:\Dst\pic03.bmp。
4. 在400*400大小24位位图的C:\src\pic04.bmp 白色背景上,用 黑色 将矩形ABCD 填充,并另存为C:\Dst\pic04.bmp。
5. 在400*400大小24位位图的C:\src\pic05.bmp 白色背景上 ,在正方形ABCD内,用黑色画一个实心圆,要求与正方形相切,并另存为C:\Dst\pic05.bmp。
6. 在400*400大小24位位图的C:\src\pic06.bmp 白色背景上 ,在长方形ABCD内,用黑色画一个实心椭圆,要求与长方形相切,并另存为C:\Dst\pic06.bmp。
7. 在400*400大小24位位图的C:\src\pic07.bmp 白色背景上,用橡皮擦将矩形ABCD内的“计算机画图”五个字擦除掉,并另存为C:\Dst\pic07.bmp。
8. 在400*400大小24位位图的C:\src\pic08.bmp 白色背景上,将蓝色三角形ABC内全填充为红色,并另存为C:\Dst\pic08.bmp。
9.将位图400*400大小的C:\src\pic09.bmp设置为墙纸(平铺)。
10.将位图C:\src\pic10.bmp另存为c:\dst\pic10.bmp设置为墙纸(居中)。

解决方案 »

  1.   

    PictureBox的Line方法和Circle方法,自己看看,API有
    【函数】
    LineTo【操作系统】
    Win9X:Yes
    WinNT:Yes【声明】
    LineTo Lib "gdi32" Alias "LineTo" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long【说明】  用当前画笔画一条线,从当前位置连到一个指定的点。这个函数调用完毕,当前位置变成x,y点 【返回值】  Long,非零表示成功,零表示失败 【其它】  如重复调用这个函数和一个几何画笔,从而创建一系列线段,那么除非在一个路径的场景中调用,否则不会认为这些线段已结合到一起【参数表】
      hdc ------------  Long,设备场景的句柄  x,y ------------  Long,线段终点位置,采用逻辑坐标表示。这个点不会实际画出来;它不属于线段的一部分【函数】
    Ellipse【操作系统】
    Win9X:Yes
    WinNT:Yes【声明】
    Ellipse Lib "gdi32" Alias "Ellipse" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long【说明】  描绘一个椭圆,由指定的矩形围绕。椭圆用当前选择的画笔描绘,并用当前选择的刷子填充 【返回值】  Long,非零表示成功,零表示失败。会设置GetLastError 【其它】
    【参数表】
      hdc ------------  Long,设备场景的句柄  X1,Y1 ----------  Long,约束矩形采用逻辑坐标的左上角位置  X2,Y2 ----------  Long,约束矩形采用逻辑坐标的右下角位置
      

  2.   

    【函数】
    FloodFill【操作系统】
    Win9X:Yes
    WinNT:Yes【声明】
    FloodFill Lib "gdi32" Alias "FloodFill" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long【说明】  用当前选定的刷子在指定的设备场景中填充一个区域。区域是由颜色crColor定义的 【返回值】  Long,非零表示成功,零表示失败。会设置GetLastError 【其它】  点x,y绝对不能有颜色crColor,而且必须在剪切区域内。这个函数只对光栅设备有效,请参考ExtFloodFill的注解【参数表】
      hdc ------------  Long,设备场景的句柄  x,y ------------  Long,开始填充的那个点,用逻辑坐标表示  crColor --------  Long,欲使用的边界颜色。由这个颜色包围的表面会被填充
      

  3.   

    关于矩形顶点的搜索:
    搜索一点,符合这样的条件
    设该点颜色为(x),背景颜色为(0)
    则,如果为
    (0)(0)(0)
    (0)(x)(x)
    (0)(x)(0)
    中间为顶点A
    (0)(0)(0)
    (x)(x)(0)
    (0)(x)(0)
    中间为顶点B
    (0)(x)(0)
    (x)(x)(0)
    (0)(0)(0)
    中间为顶点C
    (0)(x)(0)
    (0)(x)(x)
    (0)(0)(0)
    中间为顶点D
    明白了吗?这是最简单的设计了!
      

  4.   

    thirdapple(陨落雕) 
    谢谢你啊
    可以留下你邮箱地址和qq号吗?
      

  5.   

    [email protected]
    我要test图,