forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Расстановка точек по сфере (http://forum.boolean.name/showthread.php?t=1322)

GoodWin 17.08.2006 12:18

Расстановка точек по сфере
 
Народ подскажите алгоритм расстановки спрайтов (или квадов) в случайном порядке на поверхности сферы и "лицом" направленные в центр сферы... (с математикой, алгеброй, геометрией я в очень плохих отношениях) помогите плиз....

impersonalis 17.08.2006 16:02

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]

GoodWin 17.08.2006 17:56

Re: Расстановка точек по сфере
 
работает но немного не так...
подобное я сделал но другим путем...
если камеру вращать не вправо или влево а вверх или вниз видно как спрайты как бы подкручиваются....

если использовать режим SpriteViewMode sp,2

то уже не то... не все спрайты повернуты к центру сферы...

надо чтобы лицом к центру сферы независимо от положения камеры


tormoz 17.08.2006 19:49

Re: Расстановка точек по сфере
 
Расширенный режим ответа не работает, напишу без тегов

PositionEntity sprite,x,y,z
RotateEntity sprite,Rnd(-90,90),Rnd(0,360),0
MoveEntity sprite,0,0,radius

impersonalis 17.08.2006 20:54

Re: Расстановка точек по сфере
 
2tormoz:
+1
единственное, что не всегда удобно использовать в случаях, где нежелательно вращать entity. А для данного случая - самое то.

GoodWin 17.08.2006 22:57

Re: Расстановка точек по сфере
 
Цитата:

Сообщение от impersonalis
2tormoz:
+1
единственное, что не всегда удобно использовать в случаях, где нежелательно вращать entity. А для данного случая - самое то.

а в каких случаях не удобно?

to tormoz - спасибо....
способ простой,как раз то что надо....


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot