Я взял построенный круговой график и адаптировал его для построения купола.Я не могу проверить это, но это должно работать, так как круг работал нормально.
Я сделал это в JavaScript.setVox
- это просто функция, которая печатает воксель на трехмерной плоскости.
var rad = 1; //radius
for (var z = -(rad); z < 0; z++) {
r = Math.round(Math.sqrt(Math.pow(rad,2) - Math.pow(z,2)));
for (var x = -(r); x < r; x++) {
y = Math.round(Math.sqrt(Math.pow(r,2) - Math.pow(x,2)));
setVox(x,y,z);
setVox(x,-(y),z);
}
for (y = -(r); y < r; y++) {
x = Math.round(Math.sqrt(Math.pow(r,2) - Math.pow(y,2)));
setVox(x,y,z);
setVox(-(x),y,z);
}
}