Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Математика в отчете ACCESS 2003
 
 автор: Lukas   (25.07.2008 в 14:17)   личное сообщение
24 Кб.
 
 

Имеется отчет ACCESS, в нем эскиз изделия с разрезами.
Задача: заштриховать место разреза А-А, ограниченное синей и зеленой линиями.
Что я могу:
1. Описать функцию Синей линии.
2. Описать функцию Зеленой линии.
3. Описать функцию вектора штриховки, привязанного либо к функции Синей линии (Желтый вектор слева), либо привязанного к функции Зеленой линии (Желтый вектор справа).
Вопрос:
Как математически вычислить точку пересечения вектора с функцией кривой?

А может это вообще надо решать как-то иначе?

Условие: все должно решаться средствами VBA.

PS. Я осознаю, что использовать ACCESS в качестве графического редактора как минимум неэффективно, но приложение в целом решает много задач, свойственных именно СУБД, а небольшие "извращения" значительно(!) облегчают жизнь конечному пользователю, не умеющему нарисовать ровный прямоугольник карандашом на бумаге.

  Ответить  
 
 автор: FORMAT   (28.07.2008 в 10:09)   личное сообщение
 
 

Используйте AUTOCAD. Там тоже есть возможность работы с СУБД., решить любые задачи можно так же средствами VBA. А графические задачи решаются элементарно ( для этого он и создан)

  Ответить  
 
 автор: Lukas   (28.07.2008 в 17:37)   личное сообщение
 
 

Боюсь AUTOCAD мне не потянуть, я ACCESS то с тремя талмудами, тремя форумами и F1 еле ворочаю. А для таких простых эскизов и отчета ACCESS достаточно. Вот только в математике у меня пробелы, давно это было.
Да и лицензировать AUTOCAD на 5-6 машинах денег стоит.
А за совет СПАСИБО!

  Ответить  
 
 автор: FORMAT   (28.07.2008 в 18:57)   личное сообщение
 
 

Если вы можете привязать вектор к одной из линий, то задача сводится к решению системы из двух уравнений с двумя неизвестными.
Первое уравнение - функция вектора, второе уравнение - функция другой линии. Ищите общие точки и соединяйте их линией ( предварительно проанализировав полученные решения на случай 2-х и более решение в системе уравнений. )

  Ответить  
 
 автор: Lukas   (28.07.2008 в 20:02)   личное сообщение
 
 

В том то и проблема, что я не знаю как решать системы из двух уравнений.
Я конечно могу загнать в цикл обе функции и проверять на совпадение (с определенной погрешностью, для уменьшения числа итераций) или воспользоваться методом "пузырька" (вроде так называется), но это все-ровно циклы. Для вычисления двух десятков отрезков штриховки получится довольно "тяжелая" вещица.
А ведь когда-то "проходили".

  Ответить  
 
 автор: FORMAT   (29.07.2008 в 10:45)   личное сообщение
 
 

Насколько я помню ( тоже было очень давно ) мы уравнения циклами и решали. Просто при разумном подходе можно уменьшить число итераций
Прикидывается диапозон возможных значений для одной из переменных. Берется середина диапозона и анализируется результат. После чего первый или второй диапозон так же разбивается пополам и анализируется середина. ит.д. В зависимости от требуемой погрешности число итераций можно свести к минимуму.
А по поводу тяжелеой вещицы ну так графические прибабмбасы на средствах, не предназначеных для графики всегда будут тяжелыми. Тут уж нужно анализировать чем пожертвовать - деньгами на Autocad или скоростью обработки информации.

  Ответить  
 
 автор: Lukas   (29.07.2008 в 11:37)   личное сообщение
 
 

Значит рекомендуете метод "пузырька", что ж, попробую.
А все-таки, прорисовку сотни - другой линий не считаю для ACCESS тяжелой задачей, тем более что задержек при прорисовке на "тормозе" типа Celeron 300 с 196 Mb оперативки не наблюдается, не говоря уже про современные двух ядерные машины.
Я месяца два назад смотрел в AUTOCAD план мощения площади и обустройства фонтана в одном южном городе - вот это как раз для AUTOCAD, а то что я рисую - просто семечки.
Спасибо в очередной раз!

  Ответить  
 
 автор: Lukas   (29.07.2008 в 15:27)   личное сообщение
 
 

Решил упростить себе задачу. Зачем мне диагональная штриховка, это ведь не конструкторский чертеж, а всего лишь эскиз. Применил вертикальную штриховку. В одном цикле две функции - просто до безобразия. Вот что значит правильно ставить себе задачи, тогда не надо будет "изобретать велосипед".

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList