krztwa beziera

Odpowiedz Nowy wątek
2013-01-21 14:26

Rejestracja: 7 lat temu

Ostatnio: 7 lat temu

0

Potrzebuje pomocy przy napisaniu programu w Microsoft Visual C# 2008. nie wiem od której strony mam ta krzywa beziera ugryść:(

Pozostało 580 znaków

ŁF
2013-01-21 14:34
ŁF
Moderator

Rejestracja: 17 lat temu

Ostatnio: 6 godzin temu

0

pokaż, co napisałeś


Pozostało 580 znaków

2013-01-21 15:00

Rejestracja: 7 lat temu

Ostatnio: 7 lat temu

0

własnie nie wiem co wybrac w Toolboxie???

Pozostało 580 znaków

2013-01-21 15:11

Rejestracja: 7 lat temu

Ostatnio: 7 lat temu

0
using System;
using System.Drawing;
using System.Windows.Forms;
class Bezier: Form
{
    protected Point[] apt = new Point[4];
    public static void Main()
    {
        Application.Run(new Bezier());
    }
    public Bezier()
    {
        Text = "Bezier (Mouse Defines Control Points)";
        BackColor = SystemColors.Window;
        ForeColor = SystemColors.WindowText;
        ResizeRedraw = true;
        OnResize(EventArgs.Empty);
    }
    protected override void OnResize(EventArgs ea)
    {
        base.OnResize(ea);
        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 / 2, 3 * cy / 4);
        apt[3] = new Point(3 * cx / 4, cy / 2);
    }
    protected override void OnMouseDown(MouseEventArgs mea)
    {
        Point pt;
        if (mea.Button == MouseButtons.Left)
        pt = apt[1];
        else if (mea.Button == MouseButtons.Right)
        pt = apt[2];
        else
        return;
        Cursor.Position = PointToScreen(pt);
    }
    protected override void OnMouseMove(MouseEventArgs mea)
    {
        if (mea.Button == MouseButtons.Left)
        {
            apt[1] = new Point(mea.X, mea.Y);
            Invalidate();
        }
        else if (mea.Button == MouseButtons.Right)
        {
            apt[2] = new Point(mea.X, mea.Y);
            Invalidate();
        }
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
        Graphics grfx = pea.Graphics;
        grfx.DrawBeziers(new Pen(ForeColor), apt);
        Pen pen = new Pen(Color.FromArgb(0x80, ForeColor));
        grfx.DrawLine(pen, apt[0], apt[1]);
        grfx.DrawLine(pen, apt[2], apt[3]);
    }
}

Rev: używaj proszę znaczników <code><code class="csharp">kod</code></code> do umieszczania kodów źródłowych w C#.

edytowany 5x, ostatnio: Rev, 2013-01-22 21:50
Z-N-A-C-Z-N-I-K-I-D-O-K-O-D-U-! - Sarrus 2013-01-21 15:17
i jakieś formatowanie, bo to jest tragiczne; ciekawi mnie, jak zdołałeś w visual studio zrobić takiego gniota, przecież edytor sam poprawia formatowanie - ŁF 2013-01-21 15:23

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0