Форум пользователей Visio http://visio.getbb.ru/ |
|
Случай на рыбалке http://visio.getbb.ru/viewtopic.php?f=18&t=643 |
Страница 1 из 1 |
Автор: | Tumanov [ 03 сен 2014, 20:20 ] |
Заголовок сообщения: | Случай на рыбалке |
Пример использования Visio для построения динамической иллюстрации решения задачи о рыболове и Чупакабре. https://visioport.epizy.com/biblio/st101.htm По-моему, загнать такое решение в 16 строк кода - это можно только в Visio. На финише трасса должна быть такой. Если что-то не заработает, говорите. Постараюсь подправить. |
Автор: | 9rey [ 07 сен 2014, 14:14 ] |
Заголовок сообщения: | Re: Случай на рыбалке |
забавно надо сделать, чтоб пользователь мог сам управлять лодкой, а зверюга бегала вокруг озера (а не вращала его все-таки). забавная игра будет на движке визио. |
Автор: | Tumanov [ 08 сен 2014, 18:40 ] | ||
Заголовок сообщения: | Re: Случай на рыбалке | ||
Типа вот так вот? Описание применения: После двойного щелчка по кнопке "Старт" лодка тянется в направлении мышки, реализуя ваш план побега. Чупакабра думает сама. В качестве рекорда фиксируется затраченное время. (Надо бы еще и запас прочности на финише мерять). Примечание Дизайна нет, только движок. Да и тот, возможно, с глюками. Мысли по поводу В принципе, игрушку сделать можно. Но очарование Visio при этом пропадает Всякие тангенсы, синусы, знаки учитывать надо... В первичном примере все было просто и изящно. Все как в Visio А подобную игрушку, по-моему, можно в чем угодно сделать примерно с такими же затратами. Но как пример сойдет Можно будет даже над дизайном подумать.
|
Автор: | 9rey [ 08 сен 2014, 19:12 ] |
Заголовок сообщения: | Re: Случай на рыбалке |
да, неплохо только почему-то чупакабра пугается лодочника и убегает, вместо того чтоб нападать))) я никуда не сворачивая грёб к берегу, тварь догоняла исправно, но уже у самого берега она резко сдриснула в другую сторону, короче больше пугала. такие дела. но пример в целом иллюстрирует, что визио можно использовать абсолютно по-разному! |
Автор: | Tumanov [ 08 сен 2014, 19:26 ] |
Заголовок сообщения: | Re: Случай на рыбалке |
Кажется я такое видел один раз... Но не успел засечь поточнее. Обычно все бывает нормально. Поищу, поправлю --- Кстати, система не 64-битная? |
Автор: | 9rey [ 08 сен 2014, 20:57 ] |
Заголовок сообщения: | Re: Случай на рыбалке |
она. но причем тут это? |
Автор: | Tumanov [ 08 сен 2014, 21:19 ] |
Заголовок сообщения: | Re: Случай на рыбалке |
Да скорее всего ни при чем, если зверь не в ту сторону пошел. Просто я ожидал, что в 64-битных может вообще вылететь. Там какие-то особенности в вызовах Win32 API, а у меня они не учтены. А таймер через Win32 API работает... --- А вот насчет эстетики - это я, пожалуй, загнул. То, что я ее по топорному стал решать, совсем не значит, что задача к Visio плохо клеится. Если подумать, то вполне можно было кое-какие вычисления заменить функциями Visio. Глядишь и было бы покрасивее. Да и поточнее. Так что при желании пример можно еще много подорабатывать --- Конкурс что ли объявить... На лучшее решение функции NextStep (в смысле использования механизмов Visio) |
Автор: | Tumanov [ 08 сен 2014, 22:17 ] |
Заголовок сообщения: | Re: Случай на рыбалке |
На всякий случай подробные комментарии к тексту функции: Код: Public Function NextStep() As Boolean
'Очередной шаг 'Это единственная вычисляющая функция. Dim dx As Double, dy As Double Dim dBx As Double, dBy As Double NextStep = True On Error GoTo NextStepErr 'Расстояния между координатами мыши и лодки. Нужны для вычисления направления. dBx = MouseX - xprime dBy = MouseY - yprime 'Направление движения лодки. Угол в диапазоне от 0 до 6.28 angl = Atn2(dBx, dBy) 'Поворот лодки. Чтобы смотрела туда, куда плывет sh.Cells("Angle") = angl 'Вычисление приращений координат текущего шага для лодки. dx = RSpeed * Cos(angl) dy = RSpeed * Sin(angl) 'Координаты текущего шага xprime = xprime + dx yprime = yprime + dy 'Шейп сдвигается в новые координаты sh.Cells("PinX") = xprime: sh.Cells("PinY") = yprime 'След лодки рисуется в координатах группы (озера). Так его легче потом стирать. sh2.XYFromPage xprime, yprime, posX, posY Set shtemp = sh2.DrawLine(posX1, posY1, posX, posY) posX1 = posX posY1 = posY ' 'Теперь Чупакабра Dim dCH As Double, angCh As Double 'Текущее направление на нее (от центра) angCh = Atn2(xCh, yCh) 'Аналогизный луч от центра на лодку angR = Atn2(xprime, yprime) 'Куда бежать Чупакабре - туда, где угол между лучами меньше 3.14 If angCh > angR Then If angCh - angR < 3.14 Then a1 = 1 Else a1 = 0 End If Else If angCh - angR > 3.14 Then a1 = 1 Else a1 = 0 End If End If 'Знак приращения If a1 = 1 Then dCH = -ChSpeed Else dCH = ChSpeed 'Новый угол от центра на Чупакабру angCh = angCh + dCH 'Ее новые координаты на берегу xCh = 0.5 * Cos(angCh) yCh = 0.5 * Sin(angCh) 'Перемещение шейпа sh1.Cells("PinX") = xCh: sh1.Cells("PinY") = yCh 'И поворот sh1.Cells("Angle") = angCh + 1.57 ' ' 'Проигрыш при совпадении координат лодки и мыши If ((xprime - xCh) ^ 2 + (yprime - yCh) ^ 2) < 0.001 Then 'Проигрыш StopTime = Now() ActivePage.Shapes("Sheet.11").Cells("Prop.record") = Second(StopTime - StartTime) ActivePage.Shapes("Sheet.11").Cells("FillForegnd") = 2 NextStep = True Else NextStep = False End If 'Победа при достижении берега (радиус озера 0.5 дюйма) If Sqr(xprime ^ 2 + yprime ^ 2) > 0.5 Then 'Победа StopTime = Now() 'Локальное достижение в шейп Sheet.11 ActivePage.Shapes("Sheet.11").Cells("Prop.record") = Second(StopTime - StartTime) rec = ActivePage.Shapes("Sheet.10").Cells("Prop.record") ActivePage.Shapes("Sheet.11").Cells("FillForegnd") = 3 If rec > Second(StopTime - StartTime) Then 'Обновление рекорда в шейпе Sheet.10 ActivePage.Shapes("Sheet.10").Cells("Prop.record") = Second(StopTime - StartTime) End If NextStep = True End If Exit Function NextStepErr: End Function |
Автор: | semenovvova19 [ 24 мар 2018, 15:30 ] |
Заголовок сообщения: | Re: Случай на рыбалке |
Как провести выходные. Лучшие места для рыбалки Подмосковья Многочисленные реки и речушки, озера, карьеры и пруды позволяют рыбакам получить удовольствие от лучшего отдыха – рыбалки. Ленинснкий район Подмосковья Территория района находится в двух бассейнах рек – Москва и Пахра. Бассейны изрезывают более мелкие речки: Незнайка, Десна, Битца, Сосенки, Гвоздянка. Реки имеют некоторую степень загрязненности, поэтому лучше рыбачить в искусственных водоемах, где происходит контроль качества воды и состояние рыбы. Рыболовная усадьба «Остров» Это одно из лучших мест рыбалки в Подмосковье. Усадьба находится в 10 км от МКАД, у селения Остров, добраться можно по Каширскому шоссе. На территории базы есть 3 пруда, которые постоянно зарыбляются. Чтобы порыбачить, необходимо купить путевку стоимостью 500 в будни или 1000 рублей в выходные. Нормы на улов нет.Рыбачить летом можно на спиннинг, донную снасть, поплавочную удочку, из рыбных трофеев – форель, щука, карп, осетр, сиг. Клуб «Рыболов Сосенки» Расположен в семи километрах от Москвы, у одноименного селения. Рыбалка здесь круглогодичная. Место красивое и оборудовано беседками, стоянками, кафе. Пруд постоянно зарыбляется, в нем водятся: белый амур, толстолобик, линь, ерш, плотва, пескарь, окунь, карась, сом, лещ, щука, осетр, форель, карп. Рыбалка разрешена удочкой, спиннингом, донкой. Стоимость путевки на рыбалку 3000 руб. С ней можно рыбачить с утра до вечера на любые сочетания трех снастей из набора спиннинг, донка, удочка. Есть норма улова. Отличные места для рыбалки есть у поселка Скнига. Место просто создано, чтобы рыбалка на Оке стала самой запоминающейся и удачной. Природа будто помогает рыбакам, создав перекаты, отмели, косы, где идет плотва, лещи и язи. Щуку на Оке рекомендуют ловить в городе Серпухова, на участке от Варшавского шоссе до железнодорожного моста. Помимо этой хищницы рыболовы на удочку и спиннинг ловят жереха, густеру, плотву, голавля, язя, окуня и леща. Хорошие рыбные места есть в районе города Коломна. На Оке рядом с деревней Колычево есть островок, где рыбаки отлично ловят средних размеров леща, судака и язя. Активная рыбалка на Оке идет летом и у деревень Негомож и Городец. Это популярное место среди спиннингистов, здесь водятся щука, жерех и судак. На правом берегу, напротив села Гольный Бугор, расположен мыс с песчаными косами, где ловят со спиннингом крупного окуня, жереха и среднего судака. Является популярным местом отдыха и рыбалки, на нем расположено несколько рыболовных баз. Улов бывает очень хорошим, но на озере есть много ограничений для рыбаков. Рыбачить можно только по путевкам, автомобили нельзя ставить близко к берегу, запрещено ездить на моторных бензиновых лодках. Не разрешено привозить с собой живца и мотыля, их покупают на месте. Словом, чтобы получить настоящее удовольствие от рыбалки, нужно знать правила и соблюдать их. «Русский карповый клуб» Клуб расположен на территории при родного заповедника «Медвежьи озера в Щелковском районе. В нем есть водоем с платной рыбалкой площадью 7 гектаров.Водоем богат форель, карпом и щукой. Пруд ежегодно зарыбляют, что дает несравненное удовольствие рыбакам от времени, проведенном на берегах и водных гладях этого красивого природного места. Рыбалка на Бисеровом озере Озеро мелководное и богато рыбой. Здесь обитают окунь, карась (серебряный и золотой), щука, пескарь, плотва, ротан, сом, ерш, верховка, линь. Иногда можно поймать судака, леща, карпа. Все условия на водоеме способствуют обитанию окуня, карася, плотвы, щуки. Как добраться: электричкой от Курского вокзала до станции Купавна. Недалеко и водоем, расположенный рядом с дорогой, с левой стороны. На машине по Горьковскому шоссе до села Купавна, потом повернуть по указателю на дорогу, ведущую к селу Бисерово. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |