|
3D-программирование Вопросы, касающиеся программирования 3D мира |
17.08.2006, 12:18
|
#1
|
ПроЭктировщик
Регистрация: 14.08.2006
Сообщений: 105
Написано 15 полезных сообщений (для 19 пользователей)
|
Расстановка точек по сфере
Народ подскажите алгоритм расстановки спрайтов (или квадов) в случайном порядке на поверхности сферы и "лицом" направленные в центр сферы... (с математикой, алгеброй, геометрией я в очень плохих отношениях) помогите плиз....
|
(Offline)
|
|
17.08.2006, 16:02
|
#2
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Re: Расстановка точек по сфере
[highlight=blitzbasic]
R#=30
x#=0
y#=0
z#=0
;=========
Graphics3D 800,600
SetBuffer BackBuffer()
camera=CreateCamera()
PositionEntity camera,x,y,z
sphere=CreateSphere()
FlipMesh sphere
EntityAlpha sphere,0.6
ScaleEntity sphere,R#,R#,R#
PositionEntity sphere,x,y,z
u#=80
;============
Local pivot=CreatePivot()
Local pivot2=CreatePivot()
PositionEntity pivot,EntityX(sphere,1),EntityY(sphere,1),EntityZ( sphere,1)
EntityParent pivot2,pivot
PositionEntity pivot2,0,0,R
For II=1 To 500
Local sp=CreateSprite()
EntityColor sp,255,0,0
TurnEntity pivot,Rnd(0,360),Rnd(0,360),0
PositionEntity sp,EntityX(pivot2,1),EntityY(pivot2,1),EntityZ(piv ot2,1)
Next
;============
While Not KeyHit(1)
TurnEntity camera,MouseYSpeed(),-MouseXSpeed(),0
MoveMouse GraphicsWidth()*0.5,GraphicsHeight()*0.5
If Abs(EntityPitch#(camera))>u# RotateEntity camera,u#*Sgn(EntityPitch#(camera)),0,0
RenderWorld()
Flip
Wend
End
[/highlight]
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
17.08.2006, 17:56
|
#3
|
ПроЭктировщик
Регистрация: 14.08.2006
Сообщений: 105
Написано 15 полезных сообщений (для 19 пользователей)
|
Re: Расстановка точек по сфере
работает но немного не так...
подобное я сделал но другим путем...
если камеру вращать не вправо или влево а вверх или вниз видно как спрайты как бы подкручиваются....
если использовать режим SpriteViewMode sp,2
то уже не то... не все спрайты повернуты к центру сферы...
надо чтобы лицом к центру сферы независимо от положения камеры
|
(Offline)
|
|
17.08.2006, 19:49
|
#4
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Re: Расстановка точек по сфере
Расширенный режим ответа не работает, напишу без тегов
PositionEntity sprite,x,y,z
RotateEntity sprite,Rnd(-90,90),Rnd(0,360),0
MoveEntity sprite,0,0,radius
__________________
|
(Offline)
|
|
17.08.2006, 20:54
|
#5
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Re: Расстановка точек по сфере
2tormoz:
+1
единственное, что не всегда удобно использовать в случаях, где нежелательно вращать entity. А для данного случая - самое то.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
17.08.2006, 22:57
|
#6
|
ПроЭктировщик
Регистрация: 14.08.2006
Сообщений: 105
Написано 15 полезных сообщений (для 19 пользователей)
|
Re: Расстановка точек по сфере
Сообщение от impersonalis
2tormoz:
+1
единственное, что не всегда удобно использовать в случаях, где нежелательно вращать entity. А для данного случая - самое то.
|
а в каких случаях не удобно?
to tormoz - спасибо....
способ простой,как раз то что надо....
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:06.
|