专业实训9.5

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了专业实训9.5相关的知识,希望对你有一定的参考价值。

1.实训时间:2016.9.5上午8:00-11:30

2.实训内容:项目在完成.x文件的固定导入后,尝试文件旋转,缩小,放大功能的开发。

3.具体实现:通过网上百度的源代码,进行阅读和修改。

具体为摄像头的处理。

阅读代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace _3dpicture
{
    public partial class Form1 : Form
    {
        private SpriteCanvas.Canvas canvas1;
        public Form1()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();
            //create two viewports, one default size and origin
            myWorld.CreateViewport(pictureBox1, Background.Image);
            //... the other somewhat smaller and showing different portion of "world"
            myWorld.CreateViewport(View2, View2.CreateGraphics(), new Point(145, 25), new Rectangle(30, 30, 120, 120), Background.Image);
            //create some sprites
            CreateTestObjects();
            //main loop timer
            timer.Start();
            //animation loop timer
            AnimationTimer.Start();
        }
     
        //create "world"
        public SpriteWorld.World myWorld = new SpriteWorld.World();
        public bool pMouseDrag = false;
        
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        //static void Main()
        //{
        //    Application.Run(new Form1());
        //}

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            myWorld.Library.Item(2).oFrame++;
            myWorld.RequestRendering(2);
            myWorld.Library.Item(3).oFrame++;
            myWorld.RequestRendering(3);
            textBox1.Text = Convert.ToString(myWorld.Library.Item(2).oFrame);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            myWorld.Library.Item(2).oFrame--;
            myWorld.RequestRendering(2);
            myWorld.Library.Item(3).oFrame--;
            myWorld.RequestRendering(3);
            textBox1.Text = Convert.ToString(myWorld.Library.Item(2).oFrame);
        }

        private void ScaleScroll_Scroll(object sender, ScrollEventArgs e)
        {
            myWorld.ResizeSprite(0, Convert.ToDouble(e.NewValue) / 100.0);
        }
        private void CreateTestObjects()
        {
            //animated
            myWorld.AddSprite(canvas1, new Point(20, 60), new Point(0, 59), 30, true);
            //also animated
            myWorld.AddSprite(canvas1, new Point(175, 60), new Point(0, 59), 60, true);
            //static
            myWorld.AddSprite(canvas1, new Point(80, 50));
            //static
            myWorld.AddSprite(canvas1, new Point(70, 80));
            //start updating FPS monitor
            FPStimer.Start();
            //show some numbers
            textBox3.Text = Convert.ToString(myWorld.Library.Item(1).oFPS);
            textBox1.Text = Convert.ToString(myWorld.Library.Item(2).oFrame);

        }

        private void timer_Tick(object sender, EventArgs e)
        {
            //check if we need some rendering
            myWorld.RenderingLoop();
        }

        private void FPStimer_Tick(object sender, EventArgs e)
        {
            //show new FPS
            textBox2.Text = Convert.ToString(myWorld.GetFPS());
        }

        private void FPSScroll_Scroll(object sender, ScrollEventArgs e)
        {
            //we will adjust fps of sprite[1] with this
            myWorld.Library.Item(1).oFPS = e.NewValue;
            textBox3.Text = Convert.ToString(myWorld.Library.Item(1).oFPS);
        }

        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            //this is used only when we have some area that needs to be redrawn
            //like when we start, or min. then restore app, or bring it to front from behind
            //some other app
            myWorld.RePaint(sender, e.Graphics, e.ClipRectangle);
        }

        private void AnimationTimer_Tick(object sender, EventArgs e)
        {
            //we animate sprites here
            myWorld.UpdateAnimated();
        }

        private void View2_Paint(object sender, PaintEventArgs e)
        {
            // k, again when window needs to be repainted
            myWorld.RePaint(sender, e.Graphics, e.ClipRectangle);
        }

        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            //when we click mouse we will start dragging sprites underneath
            //when we click again we drop ‘em
            if (pMouseDrag)
            {
                pMouseDrag = false;
                return;
            }
            myWorld.StartMouseDrag(e.X, e.Y);
            pMouseDrag = true;
        }

        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            //if we selected some sprites move ‘em around
            if (pMouseDrag)
            {
                myWorld.MoveSelected(e.X, e.Y);
            }
        }

        
    }
}

 载入新建文件运行,未果。

工作效率评价:低。

以上是关于专业实训9.5的主要内容,如果未能解决你的问题,请参考以下文章

大学计算机相关专业实验实训整理

大学计算机相关专业实验实训整理

专业实训9.7

专业实训日志02

专业实训8.31

计算机专业学生Java实训心得体会合集6篇