2d сетка
вопрос как реализовать подобную сетку в 2д так чтоб можно было
по координатам мыши вычислить номера ячейки при клике возможно у вас есть идеи ,предложения по реализации... |
Ответ: 2d сетка
в принципе всё до чего я додумался ...
вот примеры кода: другой вариант ; |
Ответ: 2d сетка
Я бы использовал функцию, которая проверяет - находится ли точка внутри многоугольника. Каждую ячейку карты представить отдельными четырёхугольниками, задать координаты вершин по формуле, которая даёт ощущение перспективы.
Сама функция проверки у меня есть, если нужна скину. |
Ответ: 2d сетка
Жека, скинь пожалуста.Мне тужно будет полезна эта функция.
|
Ответ: 2d сетка
Цитата:
а так -то конечно . |
Ответ: 2d сетка
вот ссылка по теме :
http://board.flashkit.com/board/show...-3d-coordinate увы ,разобраться в том коде никак не могу ,хоть и пытался переписать под blitz |
Ответ: 2d сетка
Так ! Вот получилось ... единственно X мыши неверно определяется :(
код: |
Ответ: 2d сетка
Ну что ж ,можно праздновать победу . После долгих размышлений (проб и ошибок) ,все-таки нашел решение (правда в правом верхнем и левом нижнем углах ячейки заметно не правильные результаты ,всего несколько пикселов, думаю этим можно пренебречь ) .
Вот выкладываю готовый код: возможно кому-нибудь пригодится ... |
Ответ: 2d сетка
Реализуй простую сетку без перспективы. А затем x координату для отрисовки линий и вычисления ячейки на которую наводишь умножай на коэффициент перспективы который зависит от Y.
Готово. |
Ответ: 2d сетка
Цитата:
Выкладываю то , что получилось код: |
Ответ: 2d сетка
Цитата:
В блитц 3д нельзя в функцию передать массив, поэтому я сделал в примере передачу объекта TArray, содержащего массив (статический, к сожалению). Blitz3D: BlitzMax: Можно в "полезные функции" скинуть, наверное. |
Ответ: 2d сетка
После долгого отсутствия ...
Вот код , переделана математическая часть ,что по моему мнению стало лучше ,как читабельно ,так и в понимании .Думаю код будет полезен . |
Ответ: 2d сетка
Теперь значение перспективы можно задавать(менять) колесом мыши ,а так же некое подобие скролинга зажав ЛКМ.
|
Ответ: 2d сетка
|
Ответ: 2d сетка
|
Ответ: 2d сетка
|
Ответ: 2d сетка
Мдаа... Ты трав . А то зациклился на блице ))) , самому смешно .
|
Ответ: 2d сетка
Вопрос писать на java или на javascript
|
Ответ: 2d сетка
Ну, предполагаю, что Максим имел ввиду именно JavaScript, а не на Java.
|
Ответ: 2d сетка
JavaScript.
Java требует компиляции и предустановленной всякой хрени. И вообще не имеет ничего общего с JavaScript'ом. :) Хотя у обоих С подобный скрипт и название схожее. Но на этом их сходства заканчиваются. Плюс JS в том что он работает во ВСЕХ броузерах. Поддержка того же canvas 2d есть практически везде сейчас (даже в IE9 который уже старьё и поддерживать не стоит). И можно просмотреть исходники сразу. И там же демки показывать - удобно очень. Рекомендую начать с простого, вот ресурсы которые стоит использовать: MDN - там документация по JavaScript'у одна из наилучших, так же они отлично описывают разные API и стандарты, с примерами и пометками "на все случаи жизни". Если что-то ищешь по JS в гугле, добавляй "mdn" и будет хорошая инфа. HTML5 Canvas Tutorials - очень удобная и доступная документация по canvas 2d с примерами и детальной документацией. Примеры есть на всё. По сути там описан практически весь функционал canvas 2d. CodePen - отличная тулза для прототипирования, и вообще можно там писать код, и сразу есть превью, и выкладывать это онлайн, другие могут также обновлять. "Доступно и приятно" :) Да и новый язык изучить - всегда полезно, тем более такой как JS который имеет уйму применений, как в веб разработке, игр (canvas, webgl, да и iOS скоро будет поддерживать webgl - инфа 100%!), так и на стороне сервера - node.js. |
Ответ: 2d сетка
Кстати , пытаюсь 2д сетку в шарообразную сетку сделать , пока то ,что получилось.
если сталкивались с данной темой киньте ссылку . javascript так javascript ... :-D |
Ответ: 2d сетка
После продолжительного затишья ...
код шарообразной сетки :-D . (пока не кликабельно :) ) |
Ответ: 2d сетка
Ну и в нагрузку облако тегов :-D с определением по ближней полусфере.
|
Ответ: 2d сетка
А можно скрины? Думаю тут мало у кого блиц остался на компах..
|
Ответ: 2d сетка
|
Ответ: 2d сетка
Шарообразная сетка с выбором ячейки (при необходимости допилить :-D )
код: |
Ответ: 2d сетка
использование безье кривых 3 порядка для создания сетки
( несколько коряво написан код :-D ) контрольные точки двигать мышью ... автовыбор точки по наведению , а потом кликать , кликать и кликать . . . :4to: сам код : |
Ответ: 2d сетка
Вот бы эти демки на js'е писал, в codepen (например).
И в нете выкладывал, на twitter'е (например). Их бы запустили не 2-3 человека, а сотни или тысячи, полюбовались, и кто-то чему-то научился бы. |
Ответ: 2d сетка
:crazy: каюсь до JS руки не доходят ,а тут на блице привычнее
|
Ответ: 2d сетка
Цитата:
|
Ответ: 2d сетка
Цитата:
|
Ответ: 2d сетка
Собственно с чего начался пост ... сетка вида ... ну типа перспектива
псевдо 3д ОСоБЕННОСТИ : регулируемый наклон ; произвольное количество тайлов (в пределах раумного конечно :crazy: ); регулируемая высота и ширина тайла . . . код прилагаю под спойлером: |
Ответ: 2d сетка
Возвращаясь к теме.
А теперь внимание, )) правильные формулы : ; вычисление координат ячейки ; tileNumberY , tileNumberX --> количество ячеек по вертикали и горизонтали ; tileSizeY , tileSizeX --> размер ячеек по вертикали и горизонтали ; tileSpaceY , tileSpaceX --> смещение ячеек по вертикали и горизонтали ; tileView --> параметр задающий искажение по горизонтали ("перспектива") for j = 0 to tileNumberY for i = 0 to tileNumberX x = i * tileSizeX + j * (i * tileView) + tileSpaceX y = j * tileSizeY + tileSpaceY next:next ; вычисление номеров ячейки по координатам мыши ym = floor((mouseY() - tileSpaceY) / tileSizeY); xm = floor((mouseX() - tileSpaceX) / tileView / (((mouseY() - thisY - tileSpaceY) / tileSizeY) + (tileSizeX/tileView ))) + tileNumberX; |
Ответ: 2d сетка
---:SOS:
|
Ответ: 2d сетка
Цитата:
|
Часовой пояс GMT +4, время: 04:39. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot