Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Builder Определение mac-адреса сетевой карты https://www.cyberforum.ru/ cpp-builder/ thread1730718.html
Приветствую. Ребят, дайте пожалуйста действующий способ определения mac-адреса сетевой карты на билдере.
C++ Builder Сообщения линкера "Unresolved external 'WinMain'"
Создаю электронный учебник в Borland C++Builder 6 запускаю выводит Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl Unresolved...
C++ Builder Считать текст из файла, выполнить в нем поиск и записать результат в файл
Помогите написать код как можно более простым способом: В начале исходного текста стоит заглавная буква русского алфавита для поиска с символом ':' (например, А: ). Далее идет словарь русских слов...
C++ Builder Смена страниц в PageControl по таймеру сделал смену только для 2 страниц : void __fastcall TForm1::Timer2Timer(TObject *Sender) { switch(PageControl1->ActivePageIndex) { case 0: PageControl1->ActivePageIndex=1;... https://www.cyberforum.ru/ cpp-builder/ thread1730494.html
C++ Builder StringGrid (Оптимизация кода) - Загрузка и Сохранение https://www.cyberforum.ru/ cpp-builder/ thread1730368.html
Добрый день! Для сохранения StringGrid в файл использую TStringList *Table = new TStringList; for(int i = 0 ; i < fStringGrid->RowCount ; i++) { ...
Вывод двумерного массива в StringGrid C++ Builder
Здравствуйте можете подсказать как сделать вывод двумерного массива в StringGrid ? И если есть ошибки в исходнике можете на них указать ? (По заданию мне надо поменять максимальный элементы местами)...
Вывод двумерного массива в StrigGrid C++ Builder
Здравствуйте , можете подсказать как вывести двумерный массив в StringGrid ? По заданию мне нужно поменять местами максимальный и минимальный элементы: Вот исходник. И есть ли в нём ошибки ? ...
C++ Builder Зависшая программа. Перезапуск Добрый день! Задумался. Есть программа написанная на Embarcadero XE8. Гипотетически, она может зависнуть. Как написать стороннее приложение (2) проверяющее не зависло ли приложение (1) ? Если... https://www.cyberforum.ru/ cpp-builder/ thread1730264.html
C++ Builder Ограничения для RandomRange https://www.cyberforum.ru/ cpp-builder/ thread1730178.html
Нужно чтобы рандом работал на меня. Тоесть ,чтобы задавал цифры из диапазона по условию . Например d1=RandomRange(1,10); d2=RandomRange(1,10); Нужно чтобы d1%d2==0 . Как грамотно записать?
C++ Builder Как сделать объекты видимыми? Вот код: void __fastcall TForm2::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { TLabel *CreateLabel= new TLabel(this); if (Button == mbLeft) {... https://www.cyberforum.ru/ cpp-builder/ thread1730099.html
случайный прохожий
1504 / 1003 / 373
Регистрация: 20.07.2013
Сообщений: 2,905
12.05.2016, 02:00 0

В-сплайновые кривые

12.05.2016, 02:00. Показов 4120. Ответов 17
Метки (Все метки)

Лучший ответ Сообщение было отмечено Gubila_2000 как решение

Решение

Выкладываю, что получилось, а получилось не очень.
Насколько понимаю, нужно еще выбирать значения узлов t (тут внимательней надо теорию просматривать).
В любом случае, может часть кода тебе пригодится, а я на данный момент пас.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
const count = 4;
TPoint point[count];
double tmin = 0., tmax = 200.;
double step = count-1. + count + 1;
 
double N(UINT q, UINT k, double t)
{
  if (q == 1)
  {
    if (t >= tmin + step * k && t <= tmin + step * (k + 1))
      return 1;
    else
      return 0;
  }
  else
    return (t - tmin - step * k) / (tmin + step * (k + q + 1) - tmin - step * k) * N(q-1, k, t) +
           (tmin + step * (k + q) - t) / (tmin + step * (k + q) - tmin - step * (k + 1)) * N(q-1, k+1, t);
}
//---------------------------------------------------------------------------
TPoint R(UINT q, double t)
{
  TPoint b = TPoint(0, 0);
  double temp;
  for (UINT i = 0; i <= count; i++)
  {
    temp = N(q, i, t);
    b.x += point[i].x * temp;
    b.y += point[i].y * temp;
  }
  return b;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ButtonClick(TObject *Sender)
{
  Refresh();
  UINT n = count-1, offset = 500, r = 3;
  TPoint a;
  TColor color = clRed;
  TColor color2 = clBlack;
  double step = 0.001;
  randomize();
  for (UINT i = 0; i <= n; i++)
    point[i] = TPoint(random(offset), random(offset));
 
  Canvas->Pen->Color = color2;
  Canvas->TextOutW(point[0].x, point[0].y, 1);
  Canvas->Ellipse(point[0].x - r, point[0].y - r, point[0].x + r, point[0].y + r);
  for (UINT i = 1; i <= n; i++)
  {
    Canvas->TextOutW(point[i].x, point[i].y, i+1);
    Canvas->MoveTo(point[i-1].x, point[i-1].y);
    Canvas->LineTo(point[i].x, point[i].y);
    Canvas->Ellipse(point[i].x - r, point[i].y - r, point[i].x + r, point[i].y + r);
  }
 
  Canvas->MoveTo(point[0].x, point[0].y);
  Canvas->Pen->Color = color;
  for(double t = tmin + step; t <= tmax; t += step)
  {
    a = R(n, t);
    if (fabs(a.x) > 10 && fabs(a.y) > 10)
      Canvas->LineTo(a.x, a.y);
  }
 
//  Canvas->MoveTo(point[0].x, point[0].y);
//  Canvas->Pen->Color = clBlue;
//  Canvas->PolyBezier(point, n-1);
}
//---------------------------------------------------------------------------


Вернуться к обсуждению:
В-сплайновые кривые
2
Миниатюры
В-сплайновые кривые  
Заказывайте контрольные, курсовые и дипломы здесь.
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2016, 02:00

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Кривые Безье
Добрый вечер! Помогите, пожалуйста! Никак не могу разобраться с кривыми Безье :cry: Мне нужно...

Эллиптические кривые
Не подскажете, что можно почитать про эллиптические кривые на средне-популярном уровне? Скажем, на...

Эллиптические кривые
Доброго времени суток! Нуждаюсь в помощи людей, которые разбираются в этом хоть чуточку лучше меня....

полиномиальные кривые
Здравствуйте! Задание: Z-функции (zmf), PI-функции (pimf) и S-функции (smf). Функция zmf...

Кривые Безье
Имеется задание: С помощью кубических кривых Безье нарисовать первую букву своего имени(Русский или...

кривые зеркала
Есть сайтик. все было норм. 10 стр в индексе, их и есть 10. сегодня смотрю - 14 добавило 4...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.