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

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

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

Полезные функции Выкладываем полезные функции, чтоб не изобретать велосипед заново...

Ответ
 
Опции темы
Старый 21.03.2007, 22:58   #1
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
ResizeMesh(Width#,Height#,Depth#,Proporcional%)

Комманда, которая масштабирует мэшь, на выбранный размер.
Есть возможность масштабировать пропорционально:
0 - Полностью на заданный размер.
1 - Пропорционально относительно заданной ширине.
2 - Пропорционально относительно заданной высоте.
3 - Пропорционально относительно заданной долготе.

Function ResizeMesh(Entity,width#,height#,depth#,proporcional=0)
	If EntityClass(Entity)="Mesh"
		mw#=MeshWidth(Entity)
		mh#=MeshHeight(Entity)
		md#=MeshDepth(Entity)

		Select proporcional
			Case 1
				ScaleEntity Entity,width/mw,width/mw,width/mw
			Case 2
				ScaleEntity Entity,height/mh,height/mh,height/mh
			Case 3
				ScaleEntity Entity,depth/md,depth/md,depth/md
			Default
				ScaleEntity Entity,width/mw,height/mh,depth/md
		End Select
	EndIf
End Function
(Offline)
 
Ответить с цитированием
Старый 22.03.2007, 05:10   #2
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)

Только не МЕШ, а Ентити.
Почуствуй разницу (с)
__________________
(Offline)
 
Ответить с цитированием
Старый 22.03.2007, 05:16   #3
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)

Мы не можень у Ентити узнать размеры, и поэтому не можемь масштабировать другие энтити, только типа Меш. Так-что в данном случае Меш. А скалю Энтити, т.к. могут быть припивоченные объекты, либо как уже встретился баг: Копированный энтити типа "меш", при манипуляциях, тоже манипулируется и источник и копия. Так что, тут приходится юзать скалинг энтити, но только для мешей.
(Offline)
 
Ответить с цитированием
Старый 22.03.2007, 11:21   #4
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)

Ctrl+R<<leEntity<<leMesh
(Offline)
 
Ответить с цитированием
Старый 22.03.2007, 16:01   #5
Chuma
ПроЭктировщик
 
Регистрация: 23.11.2006
Сообщений: 130
Написано 3 полезных сообщений
(для 35 пользователей)
Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)

и что изменилось?
(Offline)
 
Ответить с цитированием
Старый 23.03.2007, 00:51   #6
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)

HolyDel непонял, что ты хотел сказать
(Offline)
 
Ответить с цитированием
Старый 23.03.2007, 07:30   #7
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)

я хотел сказать нажать ctrl+r
ввести в поле поиска leEntity
ввести в поле замена leMesh
ето больше имеет отношение к сообщению Tarmoz'a
(Offline)
 
Ответить с цитированием
Старый 23.03.2007, 14:02   #8
Chuma
ПроЭктировщик
 
Регистрация: 23.11.2006
Сообщений: 130
Написано 3 полезных сообщений
(для 35 пользователей)
Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)

релакс - я в том сообщении забыл смайл подставить. а про автозамену понял =)))
(Offline)
 
Ответить с цитированием
Старый 23.03.2007, 18:47   #9
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)

ну, функция стала отвечать своему названию, хотя конечно проще было-бы поменять название функции на ResizeEntity.
(Offline)
 
Ответить с цитированием
Старый 24.03.2007, 02:13   #10
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)

Право за тобой. =) Функцию моджете юзать в своих усмотрениях, я лишь как посчитал удобно сделал, т.к. масштабируется Только мэшь, пэтому ресайзмэшь =) а ты можешь себе поменять
(Offline)
 
Ответить с цитированием
Старый 24.03.2007, 08:19   #11
jimon
 
Сообщений: n/a
Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)

тут с утра такой дебильный вопрос
а ета функция вообще работает ?
MeshWidth возвращает размер меша, а ScaleEntity скалит ентети
ети параметры как бы вообще не зависят друг от друга
тоесть если мы скалим ентети, то сам меш никак не изменяется
иначе бы если мы скалили меш - менялся бы внешний размер всех ентети которые оперируют с етим мешом

и еще :
MeshWidth# (mesh)

Returns the width of a mesh. This is calculated by the actual vertex positions and so the scale of the entity (set by ScaleEntity) will not have an effect on the resultant width. Mesh operations, on the other hand, will effect the result.
ps. с утра могу и тормозить ...
 
Ответить с цитированием
Старый 24.03.2007, 08:33   #12
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)

хз, хз, у меня всё работает на ура, возможно насчёт "so the scale of the entity will not have an effect" - прогон .
(Offline)
 
Ответить с цитированием
Старый 24.03.2007, 09:38   #13
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)

ScaleEntity - изменяет параметры в матрице для "родного меша".
сам меш не изменяется.
если кто надумает скалить меш, то вес ентити которые "имеют" етот меш тоже отскалются. Вызвав ету функцию еще раз все станет на свои места т.е. объекты будут иметь тот размер что надо.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FillBuffer(buff,width,height,c=0) HolyDel Полезные функции 0 05.02.2007 01:28


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


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