Create your own Season's Greetings with Scilab
With this Scilab script, create your own Season's Greeting, to share it with your friends:
ScilabSeasonsGreeting.sce 1.91 kB
function Star(B, b, n, name) colour = modulo(name, 128); for p = n:-1:1 for q = 1:min(p,2):2^(p-1)*b Z = B*exp(%i*q*%pi/2^(p-2)/b); xfpolys(real(Z), imag(Z), [colour colour+8]); end end endfunction txt = ["First Name"; "Date of Birth"]; sig = x_mdialog("Enter your info", txt, ["John"; "2017"]); if ~isempty(sig) then year = evstr(sig(2)); n = modulo(year,3)+3; b = modulo(year,6)+5; name = sum(ascii(sig(1))); R = 1; r = R/(2*cos(%pi/b)); B = [0 0; R*%i r*exp(%i*(%pi/2 + %pi/b)); r*exp(%i*(%pi/2 - %pi/b)) R*%i]; f = figure("visible","off", .. "figure_name", "",.. "color_map", jetcolormap(128),.. "menubar_visible", "off",.. "toolbar_visible", "off",.. "infobar_visible", "off"); f.background = color("white"); imageWidth = 138; imageHeight = 69; try // getURL requires an internet connection URL = getURL("https://www.scilab.org/sites/default/files/news/17/scilab-logo.png"); uicontrol("Parent", f, .. "Style", "image", .. "Position", [(f.axes_size(1)-imageWidth-20) imageHeight imageWidth imageHeight], .. "Backgroundcolor",[1 1 1], .. "String", URL); catch end f.visible = "on"; plot2d(%inf, %inf, frameflag = 3, rect = [-R,-R,R,R], axesflag = 0); Star(B, b, n, name); a = gca(); t = a.title; t.font_size = 4; t.font_style = 5; t.text = sig(1)+"''s Season''s Greetings (proudly made with Scilab)"; uicontrol("Parent", f, .. "Style", "pushbutton", .. "Position", [30 imageHeight 100 40], .. "String", "Save to PNG",.. "Callback","savePNG()"); function savePNG() File = uiputfile("*.png"); if isempty(File) then return; end xs2png(f, File+".png"); endfunction end