Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» прикладное программирование и не только оно...

Автор: Diplodok
Дата сообщения: 27.10.2015 18:47
Сразу прошу прощения за 100% ламерский вопрос, но не знаю, как лучше начать. Есть необходимость расчёта полощади прямоугольника, заключённой между двумя горизонтальными линиями, пересекающими этот прямоугольник. В идеале обе линии можно двигать мышью и при этом в отдельном окошке или рядом с курсором показывается текущее положение (вертикальная координата) перемещаемой линии, и также в отдельной ячейке отображается переменная площадь области, ограниченной этими линиями и сторонами прямоугольника.

-----------------
| |
| |
---------------------------
|xxxxxxxxxxxx|
|xxxxxxxxxxxx|
---------------------------
| |
| |
-----------------

Чтобы начать самому или искать, кто займётся, надо для начала понять, на каком языке это лучше всего отрисовать. Буду благодарен за совет.
Автор: NeoAnomaly
Дата сообщения: 28.10.2015 08:42
Diplodok, вот накидал пример отрисовки + перетаскивания на delphi xe7. Код не идеален, но идею показывает, добавить проверку граничных условий, расчёты, немного отрефакторить и готово Так же просто это можно делать на C#, в общем что тебе, или тому кто согласится делать, ближе.
Автор: Diplodok
Дата сообщения: 28.10.2015 15:36
NeoAnomaly

большое спасибо! Теперь попробую разобраться, как вставить сам расчёт площади между линиями.
Автор: NeoAnomaly
Дата сообщения: 29.10.2015 07:17
Diplodok у тебя абстрактная задача или прикладная?
Автор: Diplodok
Дата сообщения: 29.10.2015 14:35
NeoAnomaly

Прикладная. Прокачивается определённый объём жидкости через набор труб переменного диаметра, и желательно иметь возможность "на лету" прикинуть, какую длину этот объём будет занимать в разные моменты времени.
Автор: Daniyar91
Дата сообщения: 29.10.2015 17:56
В таком случаи, не должна ли твоя картинка, выглядеть вот так

Код: +------------+
| |
| |
| |
| |
-----+------------+-----
|xxxxxxxxxxxx|
|xxxxxxxxxxxx|
+------------+
Автор: Diplodok
Дата сообщения: 29.10.2015 19:01
Daniyar91

Это не ёмкость, а набор труб, причём переменного диаметра. Трубы могут и как правило являются заполнены какой-то жидкостью, которая постепенно вытесняется другой. Я нарисовал вертикальный участок для простоты, чтобы лучше было видно разграничение.
Автор: NeoAnomaly
Дата сообщения: 30.10.2015 09:15
Diplodok, хм, не до конца понимаю, как площадь привязана к длине, занимаемой каким-то объёмом. Ну т.е. косвенно понятно как связаны, но не плясать ли в программе сразу от заданного объёма и диаметра трубы и расчёты выполнять соответственно? Зачем возможность двигать границы, оставить просто визуализацию, а то код усложняет, а юзабельности, на мой взгляд, не добавляет...
Автор: Diplodok
Дата сообщения: 30.10.2015 18:23
NeoAnomaly

Это для двунаправленности расчёта: либо оптимизируем объём с целью заполнить им определённую длину трубопровода, либо смотрим, какую длину займёт фиксированный объём. Бывает надо и так, и эдак. Площадь ессно привязана напрямую, так как она - 2D проекция объёма. То есть исходными данными для построения схемы будут длины и внутренние и наружные диаметры цилиндров, состыкованных последовательно или вставленных друг в друга, а предметом расчёта будет длина/объём порции жидкости, протекающей по ним. В качестве первого приближения можно представить себе телескоп из труб, в который вводится другой поменьше диаметром и через который в первый больший телескоп закачивается жидкость, выходящая из нижнего конца внутреннего телескопа и вытекающая обратно через межтрубное пространство.

| | | |
| | | |
| | | |
| | | |
| | | |
|_ | | _ |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
|_________ |

P.S. Пытался вставить стрелки, указывающие направление течения жидкости, но вместо них отобразились коды.
Автор: HNKTO
Дата сообщения: 30.10.2015 19:22
Diplodok, объём прокачиваемой через трубу жидкости в общем зависит от диаметра отверстия, разности давлений на концах трубы в вязкости жидкости и длинны трубы. Что из этого тебе кртитчно?

набери в пост поставленную тебе задачу и скажи куда (для чего) будет использоватся полученная программа.
Автор: Diplodok
Дата сообщения: 30.10.2015 19:59
HNKTO

Я не моделирую гидравлику, речь строго о соотношении длин и объёмов Полученная программа будет использоваться для того же, то есть расчёта длины трубопровода переменного диаметра, занимаемой определённым объёмом жидкости. По-моему, это было понятно из предыдущих постов.
Автор: HNKTO
Дата сообщения: 02.11.2015 19:56
Ну в таком случае можно вывести из объёма цилиндра
[ing]http://www.webmath.ru/web/images/web_pic22.gif[/img]
V=S*h где S = пи*r^2
откуда h = V/S
т. к. в нормальных условиях один литр воды занимает один дм^3 https://ru.wikipedia.org/wiki/Литр
величины S и r стоит принимать в метрах для h в метрах.
И это всё для круглой трубы. Для квадратной, прямоугольной - исходя из объёма фигуры движения прямоугольника, для более сложных сечений - подобно, но будет уже с интнгралами.
С интерфейсом программы думаю не заморачивайся. Сделай консольную программу, просящую последовательно ввести внутренний диаметр, замеряный объём и выдающую длинну трубы.

ещё мне тут попалась
http://tedremont.com/index.php/obem-vody-v-trube
с перечеслением номинальных характеристик труб. Способна облегчить снятие характеристик с исследуемой трубы.

Добавлено:
п. с.
Для проведения рассчётов в программе рекомендую использовать двойную точночсть (double) для обеспечения уровня прогрешностей рассчёта не более миллилитра даже для километровых длинн.
Автор: Diplodok
Дата сообщения: 04.11.2015 02:16
HNKTO

Я знаю, как считать объём цилиндра. Заморачиваюсь с тем, что мне нравится, то есть в данном случае с графическим калькулятором. Всего хорошего.

P.S. "Длина" пишется с одним "н"
Автор: taxzt
Дата сообщения: 03.02.2016 23:53
Здравствуйте. Очень нужна помощь "чайнику": есть определённая страничка, на которой в коде странички надо проверить наличие определённой информации и при наличии данной инфы внести результат (или определённую отметку) в текстовый файл.
Автор: akaGM
Дата сообщения: 04.02.2016 10:19
taxzt

тебе в веб-программирование:

http://forum.ru-board.com/forum.cgi?forum=31
Автор: HNKTO
Дата сообщения: 16.02.2016 22:55
гм опять я со странными вопросами. Может кто уже сталкивался/решал проблему.
Для понятности описываю несколько громоздко:
Есть программа, головное окно которой создаётся из ресурса (см. а-ля CALC из Петзольда)
В обработчике сообщений главного окна функцией CreateWindow создаю контрол SysDateTimePick32 (хотя неважно, проблема наблюдается с любым IE5 контролом, но не с базовыми), при этом аргумент parent устанавливаю в hwnd моего гланого окна - для приёма сообщений от SysDateTimePick32.
Всё работает.
Затем надобность в этом контроле отпадает и я его удаляю отправляя ему SendMessage(hwnd_SysDateTimePick32, WM_CLOSE, 0, 0);
сам контрол закрывается и удаляет своё окно (включая показания SPY++)
но вот потом при попытке закрыть программу она оснанавливается с исключением в её DestroyWindow()
или при попытке вновь создать этот контрол.
исключение: отладчик пишет "...corruption of a heap...bug in a %имя моего экзешника% or any of DLLs it hal loaded", продолжить можно, но контрол больше не создаётся.
Всё это на WIn7x64, компилятор: visualStudio2005sp2
...
если в CreateWindow агрументу parent присвоить 0 - проблемы нет - контрол сколько угодно раз создаётся и удаляется и программа закрывается без ошибок.
...
если что - идея была такова - в листвиеве в клетке а-ля как стандартный эдит (листвиевы с "редактируемыми" полями) делается таймпикер для приёма данных, после ввода он убирается.
Автор: HNKTO
Дата сообщения: 20.02.2016 08:24
то-же самое под Win98IF работает без каких либо вопросов. т. е. я так понимаю тут речь идёт о каком-то чудном косяке API Windows 7.
Автор: zealotfan
Дата сообщения: 02.03.2016 15:27
Вопрос знатокам delphi. Функция есть обычный Tedit с name kod в который заносится код, например 2801200173543260, при использовании strtoint64(kod.Text) выводится отрицательное непонятное значение. Как с этим бороться но мне нужно перевести значение в int64. Delphi XE5.
Автор: KDPoid
Дата сообщения: 02.03.2016 19:42

Код: li : int64;
begin
li := StrToInt64(Filter.Text);
Автор: NeoAnomaly
Дата сообщения: 02.03.2016 21:27

Цитата:
выводится отрицательное непонятное значение

zealotfan, куда выводится, как выводится, переполнение?

Added:
Хотя 31 бит у этого числа равен 0 и в int32 не должно быть отрицательного(отрицательное будет в int16 = -4260), тем не менее, как уже сказал KDPoid всё прекрасно работает в лоб и надо смотреть твой код.
Автор: zealotfan
Дата сообщения: 03.03.2016 06:32
Действительно ошибка была в коде, а не в функции.Переменная куда записывалось значение была integer, а не int64. Всем спасибо.
Автор: zealotfan
Дата сообщения: 04.03.2016 10:52
Еще один вопрос по delphi. Есть одна БД в firebird и еще куча DBFок в папке. Делаю запрос к firebird через TIBQuery, а к DBF через TADOQuery. Как мне соединить данные из этих query чтобы получить единый и что мне поможет при этом?
Автор: Alexzzy
Дата сообщения: 05.03.2016 19:37
zealotfan
Как вариант - в циклах перекинуть в TClientDataSet.
Автор: zealotfan
Дата сообщения: 06.03.2016 08:18
Alexzzy
Спасибо! Есть вариант через BDE, но тогда, как я понял, нужно будет создавать ещё одно соединение в TDatabase к Firebird.
Автор: Alexzzy
Дата сообщения: 06.03.2016 11:38
zealotfan
Вариант с BDE не несет преимуществ, так как там нет функционала объединения. Можно поковырять FireDAC, там вроде как-то можно объединять результаты запросов.
Автор: zealotfan
Дата сообщения: 08.03.2016 09:11
Alexzzy
Теперь уже 3 варианта решения задачи. После праздников буду пробовать TClientDataSet, Firedac ну и если ничего не получится то придётся использовать BDE.
Автор: reenoip
Дата сообщения: 29.05.2016 21:04
Есть у кого-нибудь образцы действительно красивых интерфейсов для десктопа? Нужно было сделать утилиту. Сделал, функционал устраивает (и много больше), но выглядит оно настолько серо и пресно, что даже открывать лишний раз не хочется, чтобы зрение не напрягать. Фантиков с ёлочками и гирляндами, конечно, предлагать не нужно, но может быть есть что-то, что выглядит как минимум "wow"? Гуглил "самые красивые приложения", однако, в основном, там выходят ссылки на мобильные приложения. В мобильных, разумеется, тоже есть чем вдохновиться, но всё равно маловато будет - негде развернуться. ОС в принципе значения не имеет - мне лишь бы подсмотреть, кто как обыгрывает и обходит в дизайне те уже приевшиеся всем элементы и решения, которые, казалось бы, обыграть как-то иначе просто немыслимо. Короче, нужен источник вдохновения
Автор: XPerformer
Дата сообщения: 29.05.2016 21:10
reenoip
о как "образцы действительно красивых интерфейсов для десктопа"
Дело вкуса Но накидал парочку...





Добавлено:
а вообще есть чудесный
Топик для похваления/обсирания интерфейсов / Delphi / Sql.ru
Автор: reenoip
Дата сообщения: 29.05.2016 21:14
XPerformer, о, оперативненько! Благодарю!
Автор: XPerformer
Дата сообщения: 29.05.2016 21:17
reenoip
да для начала просто взять любую нормальную прогу за оcнову, хоть firefox, там же профи работают на интерфейсами


Страницы: 12345678910111213141516171819202122232425262728293031

Предыдущая тема: Borland Developer Studio 2006 и Oracle пакеты


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.