Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 28 мар 2024, 23:37

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Случай на рыбалке
СообщениеДобавлено: 03 сен 2014, 20:20 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Пример использования Visio для построения динамической иллюстрации решения задачи о рыболове и Чупакабре.
https://visioport.epizy.com/biblio/st101.htm
По-моему, загнать такое решение в 16 строк кода - это можно только в Visio.
На финише трасса должна быть такой.
Изображение
Если что-то не заработает, говорите. Постараюсь подправить.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Случай на рыбалке
СообщениеДобавлено: 07 сен 2014, 14:14 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
забавно :)
надо сделать, чтоб пользователь мог сам управлять лодкой, а зверюга бегала вокруг озера (а не вращала его все-таки). забавная игра будет на движке визио.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Случай на рыбалке
СообщениеДобавлено: 08 сен 2014, 18:40 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Типа вот так вот?
Описание применения:
После двойного щелчка по кнопке "Старт" лодка тянется в направлении мышки, реализуя ваш план побега.
Чупакабра думает сама.
В качестве рекорда фиксируется затраченное время. (Надо бы еще и запас прочности на финише мерять).
Примечание
Дизайна нет, только движок. Да и тот, возможно, с глюками.
Мысли по поводу
В принципе, игрушку сделать можно. Но очарование Visio при этом пропадает :(
Всякие тангенсы, синусы, знаки учитывать надо...
В первичном примере все было просто и изящно. Все как в Visio :) А подобную игрушку, по-моему, можно в чем угодно сделать примерно с такими же затратами.
Но как пример сойдет :) Можно будет даже над дизайном подумать.


Вложения:
NewChoo.vsd [76.5 Кб]
Скачиваний: 265
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Случай на рыбалке
СообщениеДобавлено: 08 сен 2014, 19:12 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
да, неплохо :)
только почему-то чупакабра пугается лодочника и убегает, вместо того чтоб нападать)))
я никуда не сворачивая грёб к берегу, тварь догоняла исправно, но уже у самого берега она резко сдриснула в другую сторону, короче больше пугала. такие дела.
но пример в целом иллюстрирует, что визио можно использовать абсолютно по-разному!


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Случай на рыбалке
СообщениеДобавлено: 08 сен 2014, 19:26 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Кажется я такое видел один раз... Но не успел засечь поточнее.
Обычно все бывает нормально.
Поищу, поправлю
---
Кстати, система не 64-битная?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Случай на рыбалке
СообщениеДобавлено: 08 сен 2014, 20:57 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
она. но причем тут это?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Случай на рыбалке
СообщениеДобавлено: 08 сен 2014, 21:19 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Да скорее всего ни при чем, если зверь не в ту сторону пошел.
Просто я ожидал, что в 64-битных может вообще вылететь. Там какие-то особенности в вызовах Win32 API, а у меня они не учтены. А таймер через Win32 API работает...
---
А вот насчет эстетики - это я, пожалуй, загнул. То, что я ее по топорному стал решать, совсем не значит, что задача к Visio плохо клеится. Если подумать, то вполне можно было кое-какие вычисления заменить функциями Visio. Глядишь и было бы покрасивее. Да и поточнее.
Так что при желании пример можно еще много подорабатывать :)
---
Конкурс что ли объявить... На лучшее решение функции NextStep :)
(в смысле использования механизмов Visio)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Случай на рыбалке
СообщениеДобавлено: 08 сен 2014, 22:17 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
На всякий случай подробные комментарии к тексту функции:
Код:
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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Случай на рыбалке
СообщениеДобавлено: 24 мар 2018, 15:30 
Не в сети
Подозрительный субъект
Подозрительный субъект
Аватара пользователя

Зарегистрирован: 24 мар 2018, 15:26
Сообщений: 1
Использую Visio c: 2013
Уровнь квалификации: Joomla
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Изображение
Как провести выходные. Лучшие места для рыбалки Подмосковья
Многочисленные реки и речушки, озера, карьеры и пруды позволяют рыбакам получить удовольствие от лучшего отдыха – рыбалки.
Ленинснкий район Подмосковья
Территория района находится в двух бассейнах рек – Москва и Пахра. Бассейны изрезывают более мелкие речки: Незнайка, Десна, Битца, Сосенки, Гвоздянка. Реки имеют некоторую степень загрязненности, поэтому лучше рыбачить в искусственных водоемах, где происходит контроль качества воды и состояние рыбы.
Рыболовная усадьба «Остров»
Это одно из лучших мест рыбалки в Подмосковье. Усадьба находится в 10 км от МКАД, у селения Остров, добраться можно по Каширскому шоссе.
На территории базы есть 3 пруда, которые постоянно зарыбляются.
Чтобы порыбачить, необходимо купить путевку стоимостью 500 в будни или 1000 рублей в выходные. Нормы на улов нет.Рыбачить летом можно на спиннинг, донную снасть, поплавочную удочку, из рыбных трофеев – форель, щука, карп, осетр, сиг.
Клуб «Рыболов Сосенки»
Расположен в семи километрах от Москвы, у одноименного селения. Рыбалка здесь круглогодичная. Место красивое и оборудовано беседками, стоянками, кафе. Пруд постоянно зарыбляется, в нем водятся: белый амур, толстолобик, линь, ерш, плотва, пескарь, окунь, карась, сом, лещ, щука, осетр, форель, карп.
Рыбалка разрешена удочкой, спиннингом, донкой. Стоимость путевки на рыбалку 3000 руб. С ней можно рыбачить с утра до вечера на любые сочетания трех снастей из набора спиннинг, донка, удочка. Есть норма улова.
Отличные места для рыбалки есть у поселка Скнига. Место просто создано, чтобы рыбалка на Оке стала самой запоминающейся и удачной.
Природа будто помогает рыбакам, создав перекаты, отмели, косы, где идет плотва, лещи и язи. Щуку на Оке рекомендуют ловить в городе Серпухова, на участке от Варшавского шоссе до железнодорожного моста.
Помимо этой хищницы рыболовы на удочку и спиннинг ловят жереха, густеру, плотву, голавля, язя, окуня и леща.
Хорошие рыбные места есть в районе города Коломна.
На Оке рядом с деревней Колычево есть островок, где рыбаки отлично ловят средних размеров леща, судака и язя. Активная рыбалка на Оке идет летом и у деревень Негомож и Городец. Это популярное место среди спиннингистов, здесь водятся щука, жерех и судак.
На правом берегу, напротив села Гольный Бугор, расположен мыс с песчаными косами, где ловят со спиннингом крупного окуня, жереха и среднего судака.
Является популярным местом отдыха и рыбалки, на нем расположено несколько рыболовных баз. Улов бывает очень хорошим, но на озере есть много ограничений для рыбаков. Рыбачить можно только по путевкам, автомобили нельзя ставить близко к берегу, запрещено ездить на моторных бензиновых лодках.
Не разрешено привозить с собой живца и мотыля, их покупают на месте. Словом, чтобы получить настоящее удовольствие от рыбалки, нужно знать правила и соблюдать их.
«Русский карповый клуб»
Клуб расположен на территории при родного заповедника «Медвежьи озера в Щелковском районе. В нем есть водоем с платной рыбалкой площадью 7 гектаров.Водоем богат форель, карпом и щукой.
Пруд ежегодно зарыбляют, что дает несравненное удовольствие рыбакам от времени, проведенном на берегах и водных гладях этого красивого природного места.
Рыбалка на Бисеровом озере
Озеро мелководное и богато рыбой.
Здесь обитают окунь, карась (серебряный и золотой), щука, пескарь, плотва, ротан, сом, ерш, верховка, линь. Иногда можно поймать судака, леща, карпа. Все условия на водоеме способствуют обитанию окуня, карася, плотвы, щуки.
Как добраться: электричкой от Курского вокзала до станции Купавна. Недалеко и водоем, расположенный рядом с дорогой, с левой стороны. На машине по Горьковскому шоссе до села Купавна, потом повернуть по указателю на дорогу, ведущую к селу Бисерово.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB