Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2009, 16:06   #1
GaLiof
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 52
По умолчанию физическое падение

Здравствуйте. Как можно на делфи реализовать такое задание:
Надо сделать 2 кубика домино. Чтобы один при падении ударялся о другой и они падали, желательно, по законам физики. Или заместо этого можно сделать шарик, который катиться по наклонной поверхности... помогите пожалуйста
GaLiof вне форума Ответить с цитированием
Старый 16.11.2009, 16:13   #2
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
//шарик двигается по диагонали
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
with Canvas do begin
for i:=1 to 500 do begin
Brush.Color :=clred;
Pen.Color := clred;
Ellipse(i,i,i+20,i+20); sleep(5);
Form1.Refresh;
end; end;end;
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.

Последний раз редактировалось ОДИНОЧЕСТВО В СЕТИ; 16.11.2009 в 16:43.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 16.11.2009, 16:40   #3
Juffin
Форумчянин
Форумчанин
 
Аватар для Juffin
 
Регистрация: 05.04.2009
Сообщений: 446
По умолчанию

ОДИНОЧЕСТВО В СЕТИ не правильно говорит, движение по наклонной плоскости должно быть равноускоренным. правильнее будет так:
Код:
Ellipse(i,i,i+20+a,i+20+b);
a:=a+1;
b:=b+1;
Nobody expects Spanish Inquisition!
Juffin вне форума Ответить с цитированием
Старый 16.11.2009, 16:46   #4
GaLiof
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 52
По умолчанию

В чём ошибка?
Код:
  
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i,a,b:integer;
begin
with Canvas do begin
for i:=1 to 200 do begin
Brush.Color :=clred;
Pen.Color := clred;
Ellipse(i,i,i+40+a,i+40+b);sleep(5);
a:=a+1;
b:=b+1;
Form1.Refresh;
end; end;
 end;

end.
при запуске прога намертво виснет....
GaLiof вне форума Ответить с цитированием
Старый 16.11.2009, 16:50   #5
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

а ты переменные а и b инициализируй
то есть
Код:
a:=0;
           b:=0;
вставь после begin
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 16.11.2009, 16:53   #6
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Есть другой вариант - уменьшать sleep с 20-30 до 5-10
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 16.11.2009, 16:56   #7
GaLiof
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 52
По умолчанию

Хех) Виснуть перестала, только почемуто увеличивается не скорость, а размер шара)) А что можете посоветовать по поводу набора домино? Думаю придётся подключать openGL...
GaLiof вне форума Ответить с цитированием
Старый 16.11.2009, 17:06   #8
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
увеличивается не скорость
потому что надо
Код:
Ellipse(i+a,i+a,i+40+a,i+40+a);
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 16.11.2009, 17:19   #9
GaLiof
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 52
По умолчанию

Ладно, это всё легко. И всёже, что насчёт кубиков? И: вообще, задача была в том, чтоб ШАР катился по поверхности...т.е. чтоб он крутился при движении...а в конце пути чтоб наклон заканчивался, и шар переходил в горизонтальное положение, и со временем останавливался...без openGL или средств directX это можно реализовать?
GaLiof вне форума Ответить с цитированием
Старый 16.11.2009, 17:26   #10
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Создайте ряд кадров крутящегося шарика и просто малюйте на канве. Формулы для расчетов знаете? Действуйте.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чем отличаеться физическое имя файла от логического? Дима я Общие вопросы Delphi 4 14.10.2009 21:49
Имитировать падение яблока сдерева. aks Помощь студентам 1 06.07.2009 11:43
daemon ошибка помогите найти падение warzoni Общие вопросы C/C++ 0 09.05.2009 10:59
Падение быстродействия в макросе skif93 Microsoft Office Excel 8 12.04.2009 14:49
Speed drop падение скорости Ivn Софт 1 12.02.2009 07:17