Построить кривую Безье по 4 точкам использовать Bezier - C#

  1. Нужно построить кривую Безье по 4 точкам использовать Bezier (Graphics) код у меня есть и все запускается вот правда не рисует нечего.


textual

Код:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WinFormsTest
{
    public partial class Form1 : Form
    {
        public Form1() {
            InitializeComponent();
        }
 
        public static void bezierCurve(
        Graphics g,
        double p1x, double p1y,
        double p2x, double p2y,
        double p3x, double p3y,
        double p4x, double p4y)
        {
            double t, r1x, r4x, r1y, r4y;
            float x, y;
 
            Pen black = new Pen(Color.Black);
 
            r1x = 3 * (p2x - p1x);
            r4x = 3 * (p4x - p3x);
 
            r1y = 3 * (p2y - p1y);
            r4y = 3 * (p4y - p3y);
 
            t = 0;
            while (t <= 1)
            {
                x = (float)((2 * Math.Pow(t, 3) - 3 * Math.Pow(t, 2) + 1) * p1x
                    + (-2 * Math.Pow(t, 3) + 3 * Math.Pow(t, 2)) * p4x
                    + (Math.Pow(t, 3) - 2 * Math.Pow(t, 2) + t) * r1x
                    + (Math.Pow(t, 3) - Math.Pow(t, 2)) * r4x);
                y = (float)((2 * Math.Pow(t, 3) - 3 * Math.Pow(t, 2) + 1) * p1y
                    + (-2 * Math.Pow(t, 3) + 3 * Math.Pow(t, 2)) * p1y
                    + (Math.Pow(t, 3) - 2 * Math.Pow(t, 2) + t) * r1y
                    + (Math.Pow(t, 3) - Math.Pow(t, 2)) * r4y);
 
                g.DrawRectangle(black, x, y, 1, 1);
 
                t = t + 0.01;
            }
        }
 
        private void Form1_MouseClick(object sender, MouseEventArgs e)
        {
            Graphics gfx = this.CreateGraphics();
            bezierCurve(gfx, 20, 20, 100, 100, 200, 200, 50, 50);
        }
    }
}


Похожие ответы
  1. Необходимо составить код для консольного приложения С# по четырем задачам: 1) Компьютер строит график функции y=a*x^2+b*x+c. Переменные a, b, c задает пользователь. 4) Компьютер строит график функции y=a/x+b. Переменные a, b задает пользователь.

  1. Добрый день! Стоит задача найти уравнение кривой вида y=A+B*exp(-x/C) (3 параметра) В моем распоряжении внушительный массив данных (в среднем около 150 000 точек) y и x (см. рис. 0) У меня получилось выполнить эту задачу с помощью VBA и поиска решений excel (Solver) (см. рис. 1, оранжевая кривая построена по найденным параметрам, синяя - исходная), но есть больше НО Эксель очень плохо работает с такими большими массивами, обработка ячеек ведется по нескольку минут. Есть может быть готовый метод для c# в который включен алгоритм Solver'a или может есть какой-нибудь еще способ найти коэффициенты уравнения кривой по массиву (y,x)? Заранее спасибо!

  1. Доброго времени суток. Напишите пожалуйста решение f(x)=1/x^2+4/(x+1)^2 построить график функции на отрезке [-6;4]

  1. Какие средства можно использовать в Visual Studio? И как можно это реализовать?Добавлено через 1 час 49 минутДолжно выйти нечто из разряда трёхмерных объектов!!!

  1. Построить график функции y=x^2. График строится с помощью отрезков. Для построения отрезков использовать алгоритм Брезенхема.

  1. помогите решить Известна зарплата каждого из 12 работников фирмы за каждый месяц первого квартала Месяц Работник 1 2 3 1 2 ... 12 Организовать ввод информации по этой таблице и определить: а) максимальную зарплату из указанных в таблице; б) порядковый номер работника, получившего за квартал наибольшую сумму; в) в каком месяце общая зарплата всех работников была максимальной.

  1. Дано: n N; x,y . Построить вектор z, содержащий сначала положительные координаты вектора x,а затем положительные координаты вектора y. Не очень понимаю,как объединить положительные координаты векторов в один вектор z.Добавлено через 1 час 22 минуты никак не получается

  1. C# Построить таблицу значений для функции f (x) = tg(x) на отрезке [0,pi/4] с числом разбиений отрезка m=10.

  1. Даны произвольные числа a, b и c. Если нельзя построить треугольник с такими длинами сторон, то напечатать 0, иначе 1.

  1. Здравствуйте. У меня имеется лог файл с почтовыми адресами вида: From: first@email.com To: random@email.com From: third@email.com To: fierst@email.com и т.д. Мне необходимо считать пары from to, дабы из них построить набор строк которые будут служить запросом, вида