Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax

Ответ
 
Опции темы
Старый 30.11.2011, 09:56   #121
Greymem
Нуждающийся
 
Регистрация: 31.05.2010
Сообщений: 63
Написано 3 полезных сообщений
(для 3 пользователей)
Хорошо Ответ: Вопрос-Ответ (для новичков BlitzMax)

Вопрос по геометрии:
http://forum.boolean.name/showthread...751#post211751

Решение найдено
Function RotateAroundOrigin(X:Float Var, Y:Float Var, ox:Float, oy:Float, a:Int)
	Local DX:Float = X - ox
	Local DY:Float = Y - oy
	Local angdiff:Float = ATan2(DX, DY)
	Local dist:Float = Sqr(DX * DX + DY * DY)
	Local s:Float = Sin(a + angdiff)
	Local c:Float = Cos(a + angdiff)
	Local tx:Float = (dist * s)
	Local ty:Float = (dist * c)
	x = tx + ox
	y = ty + oy
	Return
End Function

Graphics 800, 600

Global oX:Float = 400
Global oY:Float = 300

Global offsetx:Int = 10;
Global Offsety:Int = 20;
Global rX:Float = oX + offsetx
Global rY:Float = oY + Offsety
Global a:Float = 1

While Not KeyHit(KEY_ESCAPE)
	RotateAroundOrigin(rX, rY, ox, oy, a)
	Plot rX, rY
	Plot ox, oy
	
	If KeyHit(KEY_RIGHT)
		ox:+100;
		rX:Float = ox + offsetx
		rY:Float = oy + Offsety
	ElseIf KeyHit(KEY_LEFT)
		ox:-100;
		rX:Float = ox + offsetx
		rY:Float = oy + Offsety
	ElseIf KeyHit(KEY_UP)
		offsetx:+10;
		Offsety:+10;
		rX:Float = ox + offsetx
		rY:Float = oy + Offsety
	ElseIf KeyHit(KEY_DOWN)
		offsetx:-10;
		Offsety:-10;
		rX:Float = ox + offsetx
		rY:Float = oy + Offsety
	EndIf;
	
	
	
	Flip
Wend
End
Источник http://www.blitzbasic.com/Community/...hp?topic=88294
Но немножко переделал под изменение координат опорной точки
__________________
Мозги... у них есть метод "Storm"

Последний раз редактировалось Greymem, 30.11.2011 в 10:57.
(Offline)
 
Ответить с цитированием
Старый 30.11.2011, 10:58   #122
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Это есть в стандартном функционале.
__________________
(Offline)
 
Ответить с цитированием
Старый 30.11.2011, 11:00   #123
Greymem
Нуждающийся
 
Регистрация: 31.05.2010
Сообщений: 63
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Сообщение от SBJoker Посмотреть сообщение
Это есть в стандартном функционале.
Хммм... и как называется функция?
__________________
Мозги... у них есть метод "Storm"
(Offline)
 
Ответить с цитированием
Старый 30.11.2011, 14:03   #124
Dzirt
Элита
 
Аватар для Dzirt
 
Регистрация: 16.01.2008
Сообщений: 1,800
Написано 958 полезных сообщений
(для 3,833 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Тему не читай, а сами знаете что....

Atan2()
(Offline)
 
Ответить с цитированием
Старый 30.11.2011, 14:30   #125
Greymem
Нуждающийся
 
Регистрация: 31.05.2010
Сообщений: 63
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Сообщение от Dzirt Посмотреть сообщение
Тему не читай, а сами знаете что....

Atan2()
Ваш речевой оборот убивает клетки моего мозга.
Уточните, что вы хотели этим всем сказать?
__________________
Мозги... у них есть метод "Storm"
(Offline)
 
Ответить с цитированием
Старый 30.11.2011, 15:04   #126
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Я уже вам ответил: http://forum.boolean.name/showpost.p...3&postcount=17
__________________
(Offline)
 
Ответить с цитированием
Старый 30.11.2011, 15:39   #127
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Сдается мне, ему не нужны намеки, ему нужен код.
__________________
(Offline)
 
Ответить с цитированием
Старый 30.11.2011, 15:42   #128
Greymem
Нуждающийся
 
Регистрация: 31.05.2010
Сообщений: 63
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Нетъ и еще раз нетъ =)
Кое до чего я могу дойти сам
Брать SetImageHandle и задавать xy с минусом?
__________________
Мозги... у них есть метод "Storm"
(Offline)
 
Ответить с цитированием
Старый 30.11.2011, 15:50   #129
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

именно так, на столько сколько нехватает до требуемой точки на экране.
__________________
(Offline)
 
Ответить с цитированием
Старый 30.11.2011, 15:51   #130
Greymem
Нуждающийся
 
Регистрация: 31.05.2010
Сообщений: 63
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Есть вопрос, как узнать сколько мне нехватает до этой точки? =)
Если известна только координата этой точки XY
__________________
Мозги... у них есть метод "Storm"
(Offline)
 
Ответить с цитированием
Старый 30.11.2011, 17:20   #131
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

ну смотри, если ты картинку желаешь рисовать в 200, 300
то до начала координат тебе получается -200, -300 так?
Это уже вращение вокруг начала координат получается.

Значит точка_назначения(x,y) - точка_нахождения_картинки(x,y) = смещение_handle_картинки(x,y)

т.е. из координат требуемой точки вращения вычитаем координаты положения видимой части картинки, т.е. если бы у неё был неизмененный хэндл.
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Greymem (01.12.2011)
Старый 01.12.2011, 08:49   #132
Greymem
Нуждающийся
 
Регистрация: 31.05.2010
Сообщений: 63
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Хммм, а изначально для той картинки которую хочу вращать вокруг точки которой нет на картинке, Handle куда устанавливать то? =)
__________________
Мозги... у них есть метод "Storm"
(Offline)
 
Ответить с цитированием
Старый 01.12.2011, 10:43   #133
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Никуда, он и так изначально в 0,0
__________________
(Offline)
 
Ответить с цитированием
Старый 02.12.2011, 08:46   #134
Greymem
Нуждающийся
 
Регистрация: 31.05.2010
Сообщений: 63
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

А если мне помимо поворота вокруг произвольной точки, нужно еще и по своей оси потом повернуть?
__________________
Мозги... у них есть метод "Storm"
(Offline)
 
Ответить с цитированием
Старый 02.12.2011, 10:48   #135
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Тога придётся напрячь штуки из вашей подписи.
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 16:31.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com