Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ленточный конвейер....


Страницы:   1 2

dj-Oleg ©   (2011-11-03 14:37:00) 

Подскажите пожалуйста, можно ли нарисовать из Делфи в Автокаде ленточный конвейер? Есть задача в делфи уже есть приложение которое расчитывает все параметры ленточного конвейера, который рассчитывается. Результаты занесены в переменные. Возможно ли по этим данным изобразить собственно сам конвейер в автокаде либо каким-то другим способом?


Jeer   (2011-11-08 20:05:00) [1]

Тут уже за 20 постов, кто просто помогает.


dj-Oleg   (2011-11-08 14:04:00) [2]

У кого есть желание просто помочь а не погнобить!


app   (2011-11-08 12:32:00) [3]

Огласите весь список, кто имеет право тратить время на тебя?


dj-Oleg   (2011-11-08 11:30:00) [4]

Опа! Товарищь Плохиш ©  вы опять решили затратить на нас свое драгоценное? Не стоило!


Плохиш   (2011-11-08 11:26:00) [5]


> dj-Oleg ©   (08.11.11 11:20) [23]
>
> Та никаких изометрических фигур - задача просто изобразить
> эту радость вообще шоб было похоже на конвейер!

Так на бумажке нарисуй, разбей на объекты и программируй. Про классы в ветке уже сказали.


Плохиш   (2011-11-08 11:25:00) [6]


> dj-Oleg ©   (08.11.11 09:34) [17]

> вот и вопрос как мне тогда располагать в координатной плоскости
> эти например барабаны?

Так в вашей конторе и конструкторов нет?
А если есть, то спроси у них чертёж конвейера, там всё в координатной плоскости прорисовано. Или "высшее" образование чертежи читать не умеет?


dj-Oleg   (2011-11-08 11:20:00) [7]

Та никаких изометрических фигур - задача просто изобразить эту радость вообще шоб было похоже на конвейер!


Омлет   (2011-11-08 11:16:00) [8]

> Inovet ©   (08.11.11 10:52) [21]
> А то может ты изометрическую проекцию хочешь построить.


Тут бы хоть с видом спереди разобраться.. )


Inovet   (2011-11-08 10:52:00) [9]

И ещё. Ты какой чертёж делаешь? А то может ты изометрическую проекцию хочешь построить.


dj-Oleg   (2011-11-08 10:44:00) [10]

Ага, вроде въезжаю.....


Омлет   (2011-11-08 10:39:00) [11]

> dj-Oleg ©   (08.11.11 09:34) [17]
> известно что у полученного конвейера 4 барабана, но кажд
> барабан находиться мало того что на разном расстоянии друг
> от друга, а + то что под разными углами... вот и вопрос
> как мне тогда располагать в координатной плоскости эти например
> барабаны?


Во-первых, надо учитывать, что точка начала координат (0, 0) находится в левом верхнем углу. Во-вторых, выбрать для конвейера какую-то точку отсчета. Например, левый нижний угол основания.
Допустим, известно, что центр барабана 1 находится на расстоянии 10 метров по оси абсцисс и 5 метров по оси ординат от точки отсчета, и барабан повернут на 40 градусов.

Сначала переводим расстояние в пиксели. Если масштаб, допустим, 0.05 м/пикс, то 10 и 5 надо разделить на 0.05, чтобы получить координаты барабана в пикселях. Прибавляем координаты точки отсчета - получаем координаты на канве. Дальше вызываем процедуру отрисовки барабана в нужных координатах под заданным углом. И так далее. Чистая геометрия.

P.S.
Повернуть точку (X,Y) на угол A с центром вращения в точке (Сx,Cy) можно по формуле:

RotatedX = Cx + (X - Cx) * Cos(A) - (Y - Cy) * Sin(A)
RotatedY = Cy + (X - Cx) * Sin(A) + (Y - Cy) * Cos(A)


Inovet   (2011-11-08 09:55:00) [12]

> [17] dj-Oleg ©   (08.11.11 09:34)
> : известно что у полученного конвейера 4 барабана, но кажд
> барабан находиться мало того что на разном расстоянии друг
> от друга, а + то что под разными углами... вот и вопрос
> как мне тогда располагать в координатной плоскости эти например
> барабаны?

Ты сказал, что с масшьабированием и началом координат тебе всё ясно на примере домика. с конвейером остаётся чистая геометрия. Для удобства можно сделать класс Барабан, пусть он умеет себя рисовать в заданных координатах и с заданным углом, рисование организовать в процедуре Draw. Останется создать 4 объекта класса Барабан, задать им координаты и углы, вызвать в OnPaint процедуру Draw см домик.


dj-Oleg   (2011-11-08 09:34:00) [13]

Спасибо уважаемые Inovet © и Плохиш © за такую прекрасную подсказку по вопросу:
>Домик ты ему сделал, теперь конвейер давай, да код не забудь >прокомментировать. Разленились тут панимаааешь.

>Пример изменения двух координат и двух размеров? Может вашей конторе программиста нанять всё-таки?

Это очень помогает любую минуту, я хорошо понимаю что намного прикольнее погнать с кого-то чем что-то внятное сказать по проблеме, это я и сам хорошо это умею делать! Если я не ошибаюсь на форуме вас силой никто не заставляет напрягаться и помогать кому либо, так в чем проблема? - кто-то просил вашей помощи? Так это у вас завышенная самооценка уважаемые!

По самому вопросу я кажется и не просил решить здесь мне что-то, обратился бы во фриланс. Формулирую вопрос иначе:(Пример домика мне понятен что динамически отрисовывать фигуры в зависимости от меняющейся переменной можно) Пример: известно что у полученного конвейера 4 барабана, но кажд барабан находиться мало того что на разном расстоянии друг от друга, а + то что под разными углами... вот и вопрос как мне тогда располагать в координатной плоскости эти например барабаны?

Чтоб никто не подумал что я намекаю на "код типа мне скинуть", оговариваю, что просьба сказать просто на словах, с целью уловить логику, не более.
P.S  очень проханных просьба не напрягаться в помощи, я и так понимаю что вы слишком заняты чтоб тратить на меня свое время, поэтому не отвлекайтесь!


Плохиш   (2011-11-07 13:43:00) [14]


>  А вот насчет динамически высчитывать и прорисовывать какой-
> нибудь примерец кинуть можешь? хотя бы чтоб попробовать
> идею уловить....

Пример изменения двух координат и двух размеров? Может вашей конторе программиста нанять всё-таки?


Inovet   (2011-11-07 11:55:00) [15]

> [13] Омлет ©   (07.11.11 11:52)
> Какой пример? Что именно не понятно?

Домик ты ему сделал, теперь конвейер давай, да код не забудь прокомментировать. Разленились тут панимаааешь.


Inovet   (2011-11-07 11:53:00) [16]

> [12] dj-Oleg ©   (07.11.11 11:19)
> А вот насчет динамически высчитывать и прорисовывать какой-
> нибудь примерец

А домик неа?


Омлет   (2011-11-07 11:52:00) [17]

> какой-нибудь примерец кинуть можешь?

Какой пример? Что именно не понятно?


dj-Oleg   (2011-11-07 11:19:00) [18]

Домик прикольно получается - это классно! А вот насчет динамически высчитывать и прорисовывать какой-нибудь примерец кинуть можешь? хотя бы чтоб попробовать идею уловить....


Омлет   (2011-11-07 10:46:00) [19]

> dj-Oleg ©   (07.11.11 10:43) [9]
> а возможно ли в таком случае реализовать чтоб код сам же
> формировал набор битмапов в зависимости от посчитанных параметров?


Да. Всё можно динамически высчитывать и прорисовывать.


Омлет   (2011-11-07 10:45:00) [20]

> dj-Oleg ©   (07.11.11 09:46) [6]

Попиксельно не надо, надо примитивами.
К примеру.. Берем компонент TPainBox, указываем Align = alClient, в обработчике OnPaint рисуем домик, размеры которого зависят от размеров компонента:

procedure TForm1.PaintBox1Paint(Sender: TObject);
var
 W, H: integer;
 HouseW, HouseH: integer;
 RoofH : integer;
begin
 W := PaintBox1.Width;
 H := PaintBox1.Height;
 HouseW := round(W * 0.8); // ширина дома
 HouseH := round(H * 0.8); // высота дома
 RoofH := round(HouseH * 0.3); // высота крыши относительно высоты дома
 with PaintBox1.Canvas do
 begin
   // Очищаем рисунок
   Brush.Color := clWhite;
   FillRect(Rect(0, 0, W, H));
   // Рисуем коробку дома
   Brush.Color := clGray;
   Rectangle((W - HouseW) div 2, (H - HouseH) div 2 + RoofH,
             W - (W - HouseW) div 2, H - (H - HouseH) div 2);
   // Рисуем крышу
   Brush.Color := clYellow;
   Polygon([Point((W - HouseW) div 2, (H - HouseH) div 2 + RoofH),
            Point(W div 2, (H - HouseH) div 2),
            Point(W - (W - HouseW) div 2, (H - HouseH) div 2 + RoofH)]);
 end;
end;


Меняем размер формы - меняется размер рисунка, т.к. все координаты относительны.
Также и с конвейером - вычислять всё можно в метрах, а вот рисовать надо уже в масштабе и относительно каких-то величин.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо