Вниз
Скачать: CL | DM;

Масштабирование с соблюдением расстояний между объектами   Найти похожие ветки 

← →
Hamyachok   (2009-08-10 11:59) [0]

Здравствуйте, мастера!
Пытаюсь разработать программу проектирования чертежей. Возникла проблема. Не могу придумать алгоритм масштабирования, чтоб соблюдались все пропорции(размер и расстояние). Все распологается на ScrollBox, а объекты - TShape.
Пробовал увеличивать все объекты на определенный коэффициент, а после этого распологать относительно верхнего-левого угла главного помещения. Но возникло 2-е проблемы:
1. Масштаб был только (1:1, 1:2, 1:4, 1:8) - это батва!!!
2. При добавлении на чертеж новых комнат, проблема - если конта слева от центральной.
Подскажите, может у кого-то есть идеи, без этого дальнейшая разработка бессмысленна!?!?!?!?!


← →
Jeer ©   (2009-08-10 12:35) [1]


> дальнейшая разработка бессмысленна


С такими знаниями она изначально бессмысленна.

P.S.
CAD-ы работают с векторной графикой и числами в плавающем формате.


← →
Сергей М. ©   (2009-08-10 12:41) [2]


> 1. Масштаб был только (1:1, 1:2, 1:4, 1:8) - это батва


Копать надо)


← →
KilkennyCat ©   (2009-08-10 12:44) [3]


> Подскажите, может у кого-то есть идеи

есть идея заплатить программистам. Можно мне ;)


← →
Hamyachok   (2009-08-10 12:51) [4]


> С такими знаниями она изначально бессмысленна.

обнадежил

Рассматривал разные пути:
1. Если увеличивать все объекты в зависимости от задонного коэфициента, все получается неплохо, но опять возникает проблема расположения, да и в размерах тоже, может быть несовпадение.
2. Есть мысль. Может быть сами объекты не трогать.
Я видел процедуру, с помощью которой масштабируют форму со всеми лежащими на ней объектами в зависимости от расширения экрана.
Как вам такой вариант???
P.S. сейчас найду, напишу.


← →
Hamyachok   (2009-08-10 12:53) [5]

вот процедура о которой я говорил:

procedure AdjustResolution(oForm:TForm);
var
 iPercentage:integer;
begin
 if Screen.Width > 640 then
   begin
     iPercentage:=Round(((Screen.Width-640)/640)*100)+100;
     oForm.ScaleBy(iPercentage,100);
   end;
end;


← →
Hamyachok   (2009-08-10 12:55) [6]


> есть идея заплатить программистам. Можно мне ;)

Это называется совет мастера - начинающему?!?!?!?!?!?!


← →
Kolan ©   (2009-08-10 12:56) [7]

О, Венгерская нотация.


← →
Anatoly Podgoretsky ©   (2009-08-10 13:18) [8]

> Сергей М.  (10.08.2009 12:41:02)  [2]

Намек на лопату?


← →
Anatoly Podgoretsky ©   (2009-08-10 13:19) [9]

> Hamyachok  (10.08.2009 12:51:04)  [4]

Не надо, не трать усилий.


← →
Hamyachok   (2009-08-10 13:35) [10]


> Не надо, не трать усилий.


А что тогда делать?


← →
Kolan ©   (2009-08-10 13:45) [11]

Начните с изучения аналогичных программ.

Из этого анализа вы поймете какие технологии вам надо изучить, для того, чтобы сделать подобную программу.

Получите нужные знания (именно их вам сейчас не хватает).

После этого можно переходит к проектированию системы.


← →
KilkennyCat ©   (2009-08-10 13:47) [12]


>
> Это называется совет мастера - начинающему?!?!?!?!?!?!

А как ты хотел? Ты замахнулся на сложный проект. Тут можно посоветовать всего две вещи:
1) Учить
2) Заплатить
первый вариант тебе уже направили:
> Jeer © (10.08.09 12:35) [1]
> CAD-ы работают с векторной графикой и числами в плавающем
> формате.

второй я тож предложил.

И путать советы с халявной разработкой нехилого проекта не надо.


← →
Jeer ©   (2009-08-10 18:19) [13]


> Пытаюсь разработать программу проектирования чертежей


А как можно чертеж проектировать ? Загадка для меня.
Чертить, рисовать.. - это понятно, но проектировать чертеж ?


> > дальнейшая разработка бессмысленна



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.012 c
2-1249815308
Кодер123456
2009-08-09 14:55
2009.10.11
Сортировка в текстовом файле


15-1250149486
McSimm
2009-08-13 11:44
2009.10.11
Книги дешевле


2-1249812910
Дмитрий
2009-08-09 14:15
2009.10.11
Рандомное слово


15-1250141829
pvr
2009-08-13 09:37
2009.10.11
Управление фотоаппаратом


4-1219234428
ШырлиМырли
2008-08-20 16:13
2009.10.11
Работа с UPS.




   Наверх