Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 13.11.2017, 20:03   #11
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Адрес: 0x0000-0x9FFFFF
Сообщений: 113
Репутация: 9
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Как раз косоугольная проекция выходит.
Коэффициенты k1, k2 - как раз проекции орта направления проектирования
Я не вижу коэффициенты в вышеописанной программе или я что то не понимаю.
goto ∞ вне форума   Ответить с цитированием
Старый 13.11.2017, 22:00   #12
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 520
Репутация: 397
По умолчанию

Цитата:
Сообщение от goto ∞ Посмотреть сообщение
Я не вижу коэффициенты в вышеописанной программе или я что то не понимаю.
Я про тот код, который приводил я. В нём лично я коэффициенты вижу:
Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Код:

Xэкр = Xцентр + X + Y*k1 
Yэкр = Yцентр - Z + Y*k2

Black Fregat вне форума   Ответить с цитированием
Старый 13.11.2017, 23:29   #13
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 16,697
Репутация: 5909
По умолчанию

Здесь куб по оси X бегает. Сообрази как переделать на ось Y
Код:

type
  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    Timer1: TTimer;
    procedure PaintBox1Paint(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
    a: Integer;
    k: Real;
    tStart,tFinish,tCenter: TPoint;
    ToRight: Boolean;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  a:=60; //сторона куба
  k:=0.6; //коеф.искажения
  tStart.X:=50;   tStart.Y:=200;   //точка старта
  tFinish.X:=550; tFinish.Y:=200;  //точка финиша
  tCenter.X:=50;  tCenter.Y:=200;  //положение центра куба
  PaintBox1.Width:=600;
  PaintBox1.Height:=400;
  ToRight:=True;
  Timer1.Enabled:=True;
end;

procedure TForm1.PaintBox1Paint(Sender: TObject);
var d: Real;
begin
  d:=k/Sqrt(2);
  with PaintBox1.Canvas do begin
    Rectangle(0,0,PaintBox1.Width,PaintBox1.Height);
    MoveTo(tStart.X,tStart.Y);
    LineTo(tFinish.X,tFinish.Y);

    MoveTo(Round(tCenter.X-a*(1+d)*0.5),Round(tCenter.Y-a*(1-d)*0.5));
    LineTo(Round(tCenter.X-a*(1+d)*0.5),Round(tCenter.Y+a*(1+d)*0.5));
    LineTo(Round(tCenter.X+a*(1-d)*0.5),Round(tCenter.Y+a*(1+d)*0.5));
    LineTo(Round(tCenter.X+a*(1-d)*0.5),Round(tCenter.Y-a*(1-d)*0.5));
    LineTo(Round(tCenter.X-a*(1+d)*0.5),Round(tCenter.Y-a*(1-d)*0.5));

    LineTo(Round(tCenter.X-a*(1-d)*0.5),Round(tCenter.Y-a*(1+d)*0.5));
    LineTo(Round(tCenter.X+a*(1+d)*0.5),Round(tCenter.Y-a*(1+d)*0.5));
    LineTo(Round(tCenter.X+a*(1-d)*0.5),Round(tCenter.Y-a*(1-d)*0.5));

    MoveTo(Round(tCenter.X+a*(1+d)*0.5),Round(tCenter.Y-a*(1+d)*0.5));
    LineTo(Round(tCenter.X+a*(1+d)*0.5),Round(tCenter.Y+a*(1-d)*0.5));
    LineTo(Round(tCenter.X+a*(1-d)*0.5),Round(tCenter.Y+a*(1+d)*0.5));
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if ToRight then begin
    Inc(tCenter.X,5);
    if tCenter.X>tFinish.X then begin tCenter.X:=tFinish.X; ToRight:=False; end;
  end
  else begin
    Dec(tCenter.X,5);
    if tCenter.X<tStart.X then begin tCenter.X:=tStart.X; ToRight:=True; end;
  end;
  PaintBox1.Repaint;
end;

end.

__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 13.11.2017 в 23:32.
Аватар вне форума   Ответить с цитированием
Старый 16.11.2017, 16:18   #14
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Адрес: 0x0000-0x9FFFFF
Сообщений: 113
Репутация: 9
По умолчанию

Всем спасибо за помощь, программу newerow1989 после коррекции приняли. Может препод не совсем разбирается в теме но поставили оценку 5, потому что никаких проекции тут не было и матриц переноса тем более.
goto ∞ вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу движения небольшой фигуры (крестик) вдоль отрезка P1P2. raitox1 Фриланс 2 18.03.2013 16:02
Написать программу движения небольшой фигуры (крестик) вдоль отрезка P1P2. Ferz27 Фриланс 1 29.04.2012 08:57
Прграммка: движение крестика вдоль отрезка G16 Фриланс 3 04.11.2010 20:57
Как реолизовать построение отрезка в 3D пространстве, как в SketchUp? Dima6120 Мультимедиа в Delphi 6 23.06.2010 19:55
Движение окружности и отрезка. Ev@ngel Компоненты Delphi 0 18.04.2008 22:16




04:19.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru