def model(r, x, y, z): """ Fukcja buduje obrys kwadratu, którego środek to punkt x, y, z oraz koło wpisane w ten kwadrat """ mcfig = mcstuff.MinecraftDrawing(mc) obrys = block.SANDSTONE wypelniacz = block.AIR mc.setBlocks(x - r, y, z - r, x + r, y, z + r, obrys) mc.setBlocks(x - r + 1, y, z - r + 1, x + r - 1, y, z + r - 1, wypelniacz) mcfig.drawHorizontalCircle(0, 0, 0, r, block.GRASS)
def rysuj(promien, x, y, z): """ Fukcja buduje obrys kwadratu, którego środek to punkt x, y, z oraz koło wpisane w ten kwadrat """ mcfig = mcstuff.MinecraftDrawing(mc) # pol = (2 * promien) // 2 obrys = block.SANDSTONE wypelniacz = block.AIR mc.setBlocks(x - promien, y, z - promien, x + promien, y, z + promien, obrys) mc.setBlocks(x - promien + 1, y, z - promien + 1, x + promien - 1, y, z + promien - 1, wypelniacz) mcfig.drawHorizontalCircle(0, 0, 0, promien - 1, block.GRASS)
def main(): mc.postToChat("Czesc! Tak dziala MC chat!") # wysłanie komunikatu do mc plac(-15, 0, -15, 30) import local.minecraftstuff as mcstuff mcfig = mcstuff.MinecraftDrawing(mc) mcfig.drawLine(-14, 0, -14, -14, 0, 14, block.LEAVES) mcfig.drawLine(-14, 0, 0, -7, 0, 14, block.LEAVES) mcfig.drawLine(-14, 0, 0, -7, 0, -14, block.LEAVES) mcfig.drawLine(-5, 0, 0, 5, 0, 0, block.LEAVES) mcfig.drawLine(5, 0, 0, -5, 0, 14, block.LEAVES) mcfig.drawLine(-5, 0, 14, 5, 0, 14, block.LEAVES) mcfig.drawLine(7, 0, -14, 7, 0, 14, block.LEAVES) mcfig.drawLine(7, 0, 0, 14, 0, 14, block.LEAVES) mcfig.drawLine(7, 0, 0, 14, 0, -14, block.LEAVES) return 0
def ruchyBrowna(): n = int(raw_input("Ile ruchów? ")) r = int(raw_input("Krok przesunięcia? ")) x = y = 0 lx = [0] # lista odciętych ly = [0] # lista rzędnych for i in range(0, n): # losujemy kąt i zamieniamy na radiany rad = float(randint(0, 360)) * np.pi / 180 x = x + r * np.cos(rad) # wylicz współrzędną x y = y + r * np.sin(rad) # wylicz współrzędną y x = int(round(x, 2)) # zaokrągl y = int(round(y, 2)) # zaokrągl print x, y lx.append(x) ly.append(y) # oblicz wektor końcowego przesunięcia s = np.fabs(np.sqrt(x**2 + y**2)) print "Wektor przesunięcia: {:.2f}".format(s) wykres(lx, ly, "Ruchy Browna") return 0 mc.player.setPos(x, 20, z) # print wsp_x, wsp_y mcfig = mcstuff.MinecraftDrawing(mc) for i in range(0, n - 1): x1 = wsp_x[i] z1 = wsp_z[i] x2 = wsp_x[i + 1] z2 = wsp_z[i + 1] mcfig.drawLine(x1, 1, z1, x2, 1, z2, block.WOOL, 4) mc.setBlock(x1, 1, z1, block.GRASS) mc.setBlock(x2, 1, z2, block.GRASS) mc.setBlock(0, 1, 0, block.OBSIDIAN) mc.setBlock(x2, 1, z2, block.OBSIDIAN)
def rysuj_linie(x, y, z, blok=block.IRON_BLOCK): """ Funkcja wizualizuje wykres funkcji, umieszczając bloki w pionie/poziomie w punktach wyznaczonych przez pary elementów list x, y lub x, z przy użyciu metody drawLine() """ import local.minecraftstuff as mcstuff mcfig = mcstuff.MinecraftDrawing(mc) czylista = True if len(y) > 1 else False for i in range(len(x) - 1): x1 = int(x[i]) x2 = int(x[i + 1]) if czylista: y1 = int(y[i]) y2 = int(y[i + 1]) print(x1, y1, z[0], x2, y2, z[0]) mcfig.drawLine(x1, y1, z[0], x2, y2, z[0], blok) else: z1 = int(z[i]) z2 = int(z[i + 1]) print(x1, y[0], z1, x2, y[0], z2) mcfig.drawLine(x1, y[0], z1, x2, y[0], z2, blok)
def model2(r, x, y, z, klatka=False): """ Fukcja buduje obrys kwadratu, którego środek to punkt x, y, z oraz koło wpisane w ten kwadrat """ mcfig = mcstuff.MinecraftDrawing(mc) obrys = block.OBSIDIAN wypelniacz = block.AIR mc.setBlocks(x - r - 10, y - r, z - r - 10, x + r + 10, y + r, z + r + 10, wypelniacz) mcfig.drawLine(x + r, y + r, z + r, x - r, y + r, z + r, obrys) mcfig.drawLine(x - r, y + r, z + r, x - r, y + r, z - r, obrys) mcfig.drawLine(x - r, y + r, z - r, x + r, y + r, z - r, obrys) mcfig.drawLine(x + r, y + r, z - r, x + r, y + r, z + r, obrys) mcfig.drawLine(x + r, y - r, z + r, x - r, y - r, z + r, obrys) mcfig.drawLine(x - r, y - r, z + r, x - r, y - r, z - r, obrys) mcfig.drawLine(x - r, y - r, z - r, x + r, y - r, z - r, obrys) mcfig.drawLine(x + r, y - r, z - r, x + r, y - r, z + r, obrys) mcfig.drawLine(x + r, y + r, z + r, x + r, y - r, z + r, obrys) mcfig.drawLine(x - r, y + r, z + r, x - r, y - r, z + r, obrys) mcfig.drawLine(x - r, y + r, z - r, x - r, y - r, z - r, obrys) mcfig.drawLine(x + r, y + r, z - r, x + r, y - r, z - r, obrys) mc.player.setPos(x + r, y + r + 1, z + r) if klatka: mc.setBlocks(x - r, y - r, z - r, x + r, y + r, z + r, block.GLASS) mc.setBlocks(x - r + 1, y - r + 1, z - r + 1, x + r - 1, y + r - 1, z + r - 1, wypelniacz) mc.player.setPos(0, 0, 0) for i in range(-r, r + 1, 5): mcfig.drawHorizontalCircle(0, i, 0, r, block.GRASS)
#!/usr/bin/env python # -*- coding: utf-8 -*- import os import local.minecraft as minecraft # import modułu minecraft import local.block as block # import modułu block import local.minecraftstuff as mcstuff # import biblioteki do rysowania figur from local.vec3 import Vec3 # klasa reprezentująca punkt w MC os.environ["USERNAME"] = "******" # nazwa użytkownika os.environ["COMPUTERNAME"] = "mykomp" # nazwa komputera mc = minecraft.Minecraft.create("") # połaczenie z symulatorem figura = mcstuff.MinecraftDrawing(mc) # obiekt do rysowania kształtów def plac(x, y, z, roz=10, gracz=False): """ Funkcja tworzy podłoże i wypełnia sześcienny obszar od podanej pozycji, opcjonalnie umieszcza gracza w środku. Parametry: x, y, z - współrzędne pozycji początkowej, roz - rozmiar wypełnianej przestrzeni, gracz - czy umieścić gracza w środku Wymaga: globalnych obiektów mc i block. """ podloga = block.STONE wypelniacz = block.AIR # podloga i czyszczenie mc.setBlocks(x, y - 1, z, x + roz, y - 1, z + roz, podloga)