Skocz do zawartości
  • 0

Pomoc z hollow sphere


xSebixx1

Pytanie

1 odpowiedź na to pytanie

Rekomendowane odpowiedzi

  • 0
16 godzin temu, xSebixx1 napisał:

Chciałem, stworzyć kule bez srodka, ale jak używam loop blocks around, to zazwyczaj nie jest rowna wsensie ze po 1 stronie jest inna i po 2 inna ma któs na to jakis pomysl?

Trzeba mieć na uwadze to, że wyrażenie `blocks around %location% in radius %number%` bierze pod uwagę wszystkie bloki, których środki są odległe o nie więcej niż zadany promień. W konsekwencji, jeśli zadana lokacja do zapętlania bloków nie leży w środku bloku, powstała sfera (czyli, jak to ująłeś, kula pusta w środku) nie będzie symetryczna. Jednym z możliwych rozwiązań jest wykorzystanie `location of block at %location%` jako środka sfery, którą chcesz utworzyć. Wtedy masz gwarancję symetrii.

Inny sposób stworzenia sfery to wykorzystanie promienia wodzącego, który wskazuje miejsce utworzenia bloku. Tworzysz wektor o długości promienia sfery, którego yaw (obrót lewo/prawo) i pitch (obrót góra/dół) są modyfikowane z pewnym krokiem, dostosowanym do promienia sfery (im większy promień, tym mniejszy musi być krok, ponieważ powstaną dziury w powierzchni). Przykład implementacji takiego rozwiązania podałem poniżej.

set {_r} to 5
set {_centerLoc} to location(100, 100, 100, "world")
set {_rotationStep} to 10

set {_v} to vector(0, -{_r}, 0)
loop ceil(180 / {_rotationStep}) times:
	loop ceil(360 / {_rotationStep}) times:
		set block at {_centerLoc} + {_v} to obsidian
		add {_rotationStep} to yaw of {_v}
	remove {_rotationStep} from pitch of {_v}

Nie jest to optymalne rozwiązanie, ponieważ ustawia ono te same bloki wielokrotnie, szczególnie bliżej "spodu" i "szczytu" sfery. Dobrze napisany kod powinien brać to pod uwagę i modyfikować `yaw` ze zmiennym krokiem. Niemniej jednak, jest to i tak lepsze rozwiązanie niż zapętlanie wszystkich bloków, włącznie z tymi wewnątrz sfery.
Mogłem także użyć wektorów sferycznych, ale uznałem składnię zwykłych wektorów za czytelniejszą.

Pozdrawiam.

Edytowane przez Kormic
Zapomniałem, że pitch = 90 oznacza spoglądanie prosto w dół, dlatego należy zmniejszać pitch, aby wektor stopniowo się "podnosił".
Odnośnik do komentarza
https://skript.pl/temat/59131-pomoc-z-hollow-sphere/#findComment-347782
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...