我制作的东西与Mac OS X在Exposé中的窗口类似.它适应项目的纵横比和可用区域的纵横比.
基本上,可用区域分为行和列.项目放在每个单元格(行和列的交集)中.width / height尽管电池的纵横比,物品必须保持其纵横比(此处).单元格数必须大于或等于项目数.在单元格数大于项目数的情况下,最后一行将不会被充分利用.目标是尽可能多地利用物品的可用区域.我很确定每个单元格的纵横比与项目的纵横比越接近越好.
当可用区域的宽高比等于项目的宽高比时,以下情况很有效:
rows := round(sqrt(count));
columns := ceiling(sqrt(count));
Run Code Online (Sandbox Code Playgroud)
其中:count是项目数量; round(x)发x到最接近的整数值,从零取整的情况下中途离开; 并ceiling(x)返回不小于的最小整数值x.
我知道Compiz使用以下类似的算法,但它没有考虑项目和可用区域的宽高比:
rows := floor(sqrt(count + 1));
columns := ceiling(count / rows);
Run Code Online (Sandbox Code Playgroud)
其中:floor(x)返回不大于的最大整数值x.
我把以下O(n)算法放在一起,它测试行和列的每个组合并寻找最佳拟合,但肯定有一个O(1)算法,因为它产生与第一个(O(1))完全相同的结果当项目和可用区域的纵横比相同时的算法:
fit (itemCount, itemRatio, availableRatio)
{
bestRows := infinity;
bestColumns := infinity;
bestDiff := infinity;
for (rows := 1; rows <= count; rows += 1)
{
columns := ceiling(count / rows);
cellWidth := …Run Code Online (Sandbox Code Playgroud) 我有一个带有多个I/O接口的系统,我正在将所有这些接口的输出收集到一个公共日志中.其中两个接口是通过行为良好的通道打开的,这些通道作为类文件对象打开,并且可以在事件基础上使用"fileevent readable"进行管理.另外两个是问题.
这些是供应商提供的库,其他人已经将其包含在Tcl包中(snoopy,FWIW).但是,唯一的读取访问是阻塞调用,并且程序包中没有任何内容会导致事件等同于fileevent.
我已经弄清楚如何生成一个单独的线程来阻止读取,拉出结果,并将其放入主线程的消息队列中.但是在读取队列时使用主线程块似乎会破坏目的,特别是因为它必须阻塞两个队列.而且我无法让读者生成一个可以触发主线程来读取队列的事件.
到目前为止,我已经查看了tcl.tk wiki无济于事.我已经尝试使用uevent库在消息推送上生成一个事件,但事件转到写入线程而不是读取线程,这实际上没有帮助.似乎应该有一些与Thread条件变量相关的解决方案,但到目前为止,我还没有找到适合该库使用的设计模式.
如果所有其他方法都失败了,我将回到Tk事件,但我试图让Tk脱离这个,因为它意味着是一个没有GUI的自动化系统,任何提及Tk都会将tclsh推入愿望并弹出一个GUI窗口.
我觉得我很亲密,但只是缺少一些东西.
这个声音很简单,我无法弄清楚为什么我找不到答案哈哈
我有一个工作的声音池类(感谢教程和我做过的一些调整),它工作正常.
现在的问题是我希望能够随机改变我的背景音乐.(并不总是在循环中有相同的音乐,但有2或3,当一个完成时,我播放其他2个中的一个).
问题是我找不到通知音乐播放完毕的方法.
有任何想法吗 ?
贾森
我想知道,以下样式是否是一种常见的做法,以避免在词典中找不到键?
# default is 0
value = my_dic[100] if 100 in my_dic else 0
Run Code Online (Sandbox Code Playgroud) 可能重复:
抽象类和接口类?
Java:接口/抽象类/抽象方法
在Java中,抽象类实现了对接口的任何使用.我知道接口的一个优点是,如果我们实现一个接口,那么我们也可以扩展另一个类.Java中是否有任何其他用途或优势?
我有很多html项目的大表,如选择,文本框,单选按钮,复选框.我也有一些功能.我想在项目的每个更改中调用此函数.例如,选择已更改,或文本框中的某些文本类型,或单击单选按钮.我怎么能简单地订阅并调用我的js函数?我可以插入任何项目
平变化= '功能()'
但可能是jquery允许更简单的方式?任何样品?
这是相结合的东西State和Writer.我检查过monad法律.
newtype M s a = M { runM :: s -> (s,a) }
instance (Monoid s) => Monad (M s) where
return = M . const . (mempty,)
m >>= f = M $ \s ->
let (s' ,x) = runM m s
(s'',y) = runM (f x) (s `mappend` s')
in (s' `mappend` s'', y)
Run Code Online (Sandbox Code Playgroud)
StateWriter 看起来有点蹩脚.
在我的应用程序中,我想隐藏导航栏,当我去前一个视图和我隐藏导航栏在viewwiilldisaapper方法,但效果仍然意味着它给出了流行时的白色屏幕..
任何人都可以告诉我它的解决方案.
谢谢大家.
我需要一个可以匹配img src标签中任何url的正则表达式
URL可以从"/images/temp.jpg"或"temp1.jpg"或甚至"http://www.example.com/temp.jpg?i=123"或任何内容变化
我写了以下代码:
preg_match_all('/(href|src)\s*=\s*"([^\s]+\/\/[^\/]+.\/[^\s]+\.(jpg|jpeg|png|gif|bmp))/ixu'
Run Code Online (Sandbox Code Playgroud)
但它不匹配许多网址,包括查询字符串,如?i = 12345
任何人都知道如何实现这一目标?
谢谢
我在自己的机器上安装了MySql.我使用MySql CommandLine Client创建了数据库,创建表,... 在学校开展项目时,我使用以下语法连接到学校的数据库:
public static Statement connect() {
try {
Class.forName( "com.mysql.jdbc.Driver" ).newInstance();
conn = DriverManager.getConnection( "1", "2", "3" );
stmt = conn.createStatement();
}
catch( Exception e ) {
System.out.println( "Connection Error: " + e );
}
return stmt;
}
Run Code Online (Sandbox Code Playgroud)
在我的本地机器上,我不必输入用户名,我所做的只是以root用户身份登录我的密码:
Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.53-community MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. …Run Code Online (Sandbox Code Playgroud)