level 3
建议用Manipulate之类函数做动态,比如用鼠标直接拖动光源、镜子等,直接输入一堆坐标数这个一看就没有想用的欲望啊。。。
2017年02月15日 07点02分
12
嗯嗯,这也是我想的开发方向。这也是我说我的GUI做的不够好的原因。
2017年02月16日 02点02分
BTW,Manipulate是没戏的……慢慢敲EventHandler吧……
2017年02月16日 02点02分
@xzcyr 但是假如我采用的是Manipulate系列,似乎就没那么好办了?
2017年03月04日 12点03分
吧务
level 15
代码还没细看,只简单说几点:
1.示例部分有个多余的ESC。
2. 在代码开头加上
If[$VersionNumber < 10,
Catenate = Flatten[#, {{1, 2}}] &;
MinMax = {Min@#, Max@#} &;
Subdivide[n_Integer] := Range[0, n]/n;
TakeSmallestBy[lst_, func_, n_] := lst[[Ordering[func /@ lst, n]]];]
可造福我等原始人。
3. Unprotect[Power, Divide]太让人不放心了。
4. 上值感觉是纯炫技了……不过也没引起什么问题,也罢……
2017年03月04日 09点03分
13
Unprotect完了后面我就Protect回去了我记得……中间也没做啥特别的操作……但是似乎新版的代码可以不需要这玩意?我隐约记得我改了一次,这俩Protect至少可以没掉一个的。ESC那个是……谢谢!上值那个我想的是方便后期添加和修改,和光学元件相关的我都给算作光学元件的属性,所以用的上值。
2017年03月04日 12点03分
level 12
GUI代码已经写了大概一半了吧……吐槽一下Mathematica的那一坨Dynamic和Handler功能调整起来真费劲……
2017年03月11日 09点03分
14
level 9
建议把程序包实现的部分写成wolfram标准程序包的形式( .m文件),把使用方法的部分写成nb文件权当doc, 你这种写法想看代码很困难,想知道怎么用也巨烦
2017年05月22日 03点05分
17
嗯~接受建议~谢谢!
2017年05月31日 03点05分