Stap 11: Advanced notities 1: tekenobjecten gedefinieerd door een ongelijkheid
Er zijn fundamenteel twee verschillende technieken voor het wiskundig gedefinieerde tekenobjecten met een python-script in Minecraft.
Een manier is om een solide object definiëren door een ongelijkheid. Een bol gecentreerd op (x0, y0, z0) met straal r kan bijvoorbeeld worden gedefinieerd door de ongelijkheid:
(Dat wil zeggen, de afstand tot (x0, y0, z0) is bij de meeste r.) Dus als u wilt tekenen een bol, gewoon doorlopen alle punten (x, y, z) in een kubus van 2 met kant lengte * r + 1 omgeving (x0, y0, z0), en trekken een blok als de bovenstaande ongelijkheid houdt.
Ik leerde deze techniek van het voorbeeldscript voor nt7s_sphere.py . Beginnen met de koptekst en init Minecraft verbinding standaardcode:
Dan gewoon doen:
Dit trekt een bol van de opgegeven straal boven de speler, en een beetje compenseren in de z-richting.
Ik gebruik dezelfde techniek, maar met een ingewikkelder formule, in mijn script van donut.py (Ja, dit is ingewikkelder dan de schildpad gebaseerde methode):
Terwijl de ongelijkheid techniek werkt het best bij vaste vormen, kunt u het voor holle vormen op twee manieren. Unidirectioneel is het gebruik van twee ongelijkheden, bijvoorbeeld in het geval van de bol een om ervoor te zorgen dat we binnen de buitenste straal van het centrum en een andere om ervoor te zorgen dat we niet dichter dan de binnenste straal. De andere manier is gewoon om een ander object tekent met kleinere afmetingen gemaakt van lucht in de grotere compact object, zoveel als in mijn donut.py script, ik in eerste instantie een glas donut tekenen, en dan het vervangen van de binnenkant van het met water.