现在的位置: 首页 > 综合 > 正文

贝赛尔曲线

2013年10月13日 ⁄ 综合 ⁄ 共 1941字 ⁄ 字号 评论关闭
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace testgrid
{
    
public partial class Besier : Form
    
{
        
protected Point[] apt = new Point[4];
        
public Besier()
        
{
            BackColor 
= SystemColors.Window;
            ForeColor 
= SystemColors.WindowText;
            ResizeRedraw 
= true;
            OnResize(EventArgs.Empty);
            InitializeComponent();
        }

        
protected override void OnResize(EventArgs e)
        
{
            
base.OnResize(e);
            
int cx = ClientSize.Width;
            
int cy = ClientSize.Height;
            apt[
0= new Point(cx / 4, cy / 2);
            apt[
1= new Point(cx / 2, cy / 4);
            apt[
2= new Point(cx / 23 * cy / 4);
            apt[
3= new Point(3 * cx / 4, cy / 2);
        }

        
protected override void OnMouseDown(MouseEventArgs e)
        
{
            Point pt;
            
if (e.Button == MouseButtons.Left)
                pt 
= apt[1];
            
else if (e.Button == MouseButtons.Right)
                pt 
= apt[2];
            
else
                
return;
            Cursor.Position 
= PointToScreen(pt);
        }

        
protected override void OnMouseMove(MouseEventArgs e)
        
{
            
if (e.Button == MouseButtons.Left) 
            
{
                apt[
1= new Point(e.X, e.Y);
                Invalidate();
            }

            
else if (e.Button == MouseButtons.Right)
            
{
                apt[
2= new Point(e.X, e.Y);
                Invalidate();
            }

        }

        
protected override void OnPaint(PaintEventArgs e)
        
{
            Graphics g 
= e.Graphics;
            g.DrawBeziers(
new Pen(ForeColor), apt);
            Pen pen 
= new Pen(Color.FromArgb(0x80, ForeColor));
            g.DrawLine(pen, apt[
0], apt[1]);
            g.DrawLine(pen, apt[
2], apt[3]);
        }

    }

}

 

抱歉!评论已关闭.