Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Построение кривой Безье порядка M, Помогите, плиз! 
:(
    Опции темы
Гость_Alex_G
Дата 15.1.2006, 00:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Помогите, пожалуйста написать в Pascal'е прогу или процедуру, рисующую кривую Безье порядка M по узловым точкам.

Функцию, вычисляющую сочетания, написал без проблем, а дальше не получается.
Код

function Binom(i, m: integer): real;
  function factorial(x: integer): double;
    begin
      if x=0 then factorial:=1 else factorial:=x*factorial(x-1);
    end;
var Cim: real;
begin
  Cim:=factorial(m)/(factorial(i)*factorial(m-i));
end;

  Вверх
Msl
Дата 20.1.2006, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 18.8.2005

Репутация: нет
Всего: нет



Вот отрыл в soft-загашниках:

Код

unit bezier;

interface
uses windows,Messages, SysUtils,  Graphics;

implementation

//msl+ Bezier Curve for Delphi Canvas

PROCEDURE DrawBezierCurve (CNV:TCanvas;px1, py1, px2, py2, px3, py3, px4, py4, count : INTEGER);

FUNCTION pow (x : Extended; y : WORD) : Extended;
VAR
  nt     : WORD;
  rslt : Extended;
BEGIN
 rslt := 1;
 FOR nt := 1 TO y DO
     rslt := rslt * x;
 pow := rslt;
END;


PROCEDURE Bezier (t : Extended; VAR x, y : INTEGER);
BEGIN
 x := TRUNC (pow (1 - t, 3) * px1 + 3 * t * pow (1 - t, 2) * px2 +
                3 * t * t * (1 - t) * px3 + pow (t, 3) * px4);
 y := TRUNC (pow (1 - t, 3) * py1 + 3 * t * pow (1 - t, 2) * py2 +
                3 * t * t * (1 - t) * py3 + pow (t, 3) * py4);
END;
VAR
 resolution, t : extended;
 xc, yc       : INTEGER;
BEGIN
  IF count = 0 THEN EXIT;
  resolution := 1 / count;
  cnv.MOVETO (px1, py1);
  t := 0;

  WHILE t < 1 DO BEGIN
    Bezier (t, xc, yc);
    cnv.LINETO (xc, yc);
    t := t + resolution;
  END;
  cnv.LINETO (px4, py4);
END;

end.


Бог в помощь! Удача в руки!
PM MAIL   Вверх
Rencom
Дата 21.1.2006, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 27.9.2005

Репутация: нет
Всего: нет



Msl раздел по паскалю, запарили делфи кидать.....
PM MAIL   Вверх
Bodro
Дата 4.2.2006, 02:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 27.1.2006
Где: Россия, г. Рязань

Репутация: нет
Всего: 4



Первое:
Это не вопрос! Парень, видно, хочет, чтобы за него всё сделали! Могу посоветовать искать доки или в виде книг, или в google.ru, потом их читать и разбираться. Затем всё написать и отладить. А если не получится что-то - спросить! Что, хочешь чтобы тепе всё рассказали? А с документацией что, работать не умеешь?

Второе:
А какая разница Delphi или Turbo Pascal? Язык-то один. В чём отличие-то? В наличии канвы? Что, тяжело код что ли переделать? Вместо cnv.LINETO (xc, yc); написать просто LINE(X0, Y0, X1, Y1);
В чём разница-то?
PM MAIL WWW ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Guedda
Дата 4.2.2006, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



Цитата(Bodro @ 4.2.2006, 03:45)
Первое:
Это не вопрос! Парень, видно, хочет, чтобы за него всё сделали! Могу посоветовать искать доки или в виде книг, или в google.ru, потом их читать и разбираться. Затем всё написать и отладить. А если не получится что-то - спросить! Что, хочешь чтобы тепе всё рассказали? А с документацией что, работать не умеешь?


Так... Парень показал код и указал точное место, чего ему не под силу. Поэтому не факт, что он хочет, чтобы кто-то все сделал за него.

Цитата(Bodro @ 4.2.2006, 03:45)
Второе:
А какая разница Delphi или Turbo Pascal? Язык-то один. В чём отличие-то? В наличии канвы? Что, тяжело код что ли переделать? Вместо cnv.LINETO (xc, yc); написать просто LINE(X0, Y0, X1, Y1);
В чём разница-то?

Разница, дорогой(ая) мой(я), во всем, начиная с того, что TP = Win16, a Delphi = Win32, у дельфи есть визуальная среда и т.д. Я думаю, не стоит сравнивать то, чего не знаешь.


Это сообщение отредактировал(а) Guedda - 4.2.2006, 09:24


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Bodro
Дата 15.2.2006, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 27.1.2006
Где: Россия, г. Рязань

Репутация: нет
Всего: 4



Я имел ввиду код. Никто не сравнивал Delphi и Turbo Pascal.
Синтаксис, ёлки, один и тот же.
Если есть исходники на Делфе, то их не сложно переделать под TP.
Разговор то не о среде и так далее, а о языке. Один хрен - Pascal!

Цитата

Разница, дорогой(ая) мой(я), во всем, начиная с того, что TP = Win16, a Delphi = Win32, у дельфи есть визуальная среда и т.д. Я думаю, не стоит сравнивать то, чего не знаешь.

Ты что воообще имел ввиду-то? smile
Вообще, TP разрабатывался под MS DOS. В нём деже нет поддержки защищённого режима. В BP есть, а в TP - нет. При чём тут Win16? smile

А самое интересное, что это главная проблема форумов - все говорят о чём хотят, только не отвечают на вопрос. Предлагаю закрыть нашу дискуссию и отвечать только по делу. Всё! Пока!

PM MAIL WWW ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Bodro
Дата 16.2.2006, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 27.1.2006
Где: Россия, г. Рязань

Репутация: нет
Всего: 4



Могу порекомендовать книгу Френсиса Хилла "OpenGL. Программирование компьютерной графики. Для профессионалов". Книга очень хорошая. Не обращай внимания на надпись "OpenGL". Там довольно много математики. Найдёшь все выкладки для кривых и поверхностей Безье. Всё нормально описано. А запрограммировать мат.выкладки ничего сложного не представляет.
Стоит она, правда, дорого. Но тебе её не обязательно покупать. Зайди в магазин. Возьми посмотреть книгу. Найди раздел посвящённый кривым Безье да спиши пару формул. Просто и эффективно. И всё получится. Удачи!
PM MAIL WWW ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0464 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.