Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local sin = math.sin
- local cos = math.cos
- local tan = math.tan
- local sqrt = math.sqrt
- local abs = math.abs
- local x = function(t) return t end
- local y = function(t) return 1 end
- local z1 = function(x)return 1.5*sqrt(-abs(abs(x)-1)*abs(3-abs(x))/((abs(x)-1)*(3-abs(x))))*(1+abs(abs(x)-3)/(abs(x)-3))*sqrt(1-(x/7)^2)+(4.5+0.75*(abs(x-0.5)+abs(x+0.5))-2.75*(abs(x-0.75)+abs(x+0.75)))*(1+abs(1-abs(x))/(1-abs(x)))end
- local z2 = function(x)return -3*sqrt(1-(x/7)^2)*sqrt(abs(abs(x)-4)/(abs(x)-4))end
- local z3 = function(x)return abs(x/2)-0.0913722*(x^2)-3+sqrt(1-(abs(abs(x)-2)-1)^2)end
- local z4 = function(x)return (2.71052+(1.5-0.5*abs(x))-1.35526*sqrt(4-(abs(x)-1)^2))*sqrt(abs(abs(x)-1)/(abs(x)-1))end
- local DrawLine = function(v1, v2, color)
- local part = Instance.new("Part", Workspace)
- Instance.new("BlockMesh", part).Scale = Vector3.new(0.3, 0.3, (v1 - v2).magnitude/2)
- part.BrickColor = color
- part.formFactor = "Symmetric"
- part.CFrame = CFrame.new(v1:Lerp(v2, 0.5), v2)
- part.Anchored = true
- return part
- end
- local bad = function(x)return(x==0/0)or(x==-0/0)or(x==1/0)or(x==-1/0)end -- thanks to da MonkeyMan for this trick
- local graph = function(f1, f2, f3, LBOUND, UBOUND, i, scale, color) -- function f1, function f2, function f3, number LBOUND, number UBOUND, number i, BrickColor color
- local graph = Instance.new("Model", Workspace)
- graph.Name = "Graph"
- for t = LBOUND, UBOUND - i, i do
- local a1, b1, c1, a2, b2, c2 = f1(t), f2(t), f3(t), f1(t + i), f2(t +i ), f3(t + i)
- if not (bad(a1) or bad(b1) or bad(c1) or bad(a2) or bad(b2) or bad(c2)) then
- DrawLine(Vector3.new(f1(t), f2(t), f3(t))*scale, Vector3.new(f1(t + i), f2(t + i), f3(t + i))*scale, color).Parent = graph
- end
- end
- return graph
- end
- local scale = Vector3.new(10, 1, 10)
- g = {z1, z2, z3, z4}
- for i = 1, #g do -- 0.5 is the default interval, set lower values for smoother graphs
- local g = graph(x, y, g[i], -8, 8, 0.02, scale, BrickColor.new 'Really blue')
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement