小编dan*_*nem的帖子

如何在HTML/CSS中创建稳定的两列布局

我想要一个有两列的容器.细节:

容器

  • 宽度应调整为其父元素的100%(容易完成).
  • 高度必须调整为包含两列(即它的高度应该完全等于两列的较大高度,因此没有溢出和滚动条永远不会显示)
  • 应该具有等于左列宽度的两倍的最小尺寸.

一般的列

  • 应该是可变高度,调整到其内容的高度.
  • 应该是并排的,使它们的顶边成一直线.
  • 如果边界,填充或边距的单个像素被应用于任何一个像素,则不应该破坏布局或彼此包裹,因为这将是非常不稳定和不幸的.

左列专门

  • 必须具有固定的绝对宽度(以像素为单位).

正确的专栏

  • 宽度必须填充容器中的剩余空间.换一种说法...
  • 宽度必须等于容器宽度减去左列的宽度,这样如果我在此列中放置一个DIV块元素,将其宽度设置为100%,给它一个类似10px的高度,并给它一个背景颜色,我将看到一个10px高的彩色条带,从左列的右边缘到容器的右边缘(即它填充右列的宽度).

要求稳定

容器应该能够调整大小(通过调整浏览器窗口大小)到最小宽度(前面指定)或更大的宽度而不破坏布局."Breaking"将包括左列改变大小(记住它应该具有固定的像素宽度),右列包裹在左侧,滚动条出现,右列中的块元素未能占用整个列宽并且通常任何上述规范都不能保持真实.

背景

如果使用浮动元素,则右列不应该在左侧包裹,容器将无法包含两列(通过剪切列的任何部分或允许列的任何部分溢出其边界) ),或者那个滚动条会出现(所以我厌倦了建议使用溢出以外的任何东西:隐藏以触发浮动元素遏制).将边框应用于列不应该破坏布局.列的内容,尤其是右列的内容,不应破坏布局.

似乎有一个简单的基于表格的解决方案,但在任何情况下它都会失败.例如,在Safari中,如果容器太小,我的固定宽度左列将收缩,而不是保持我指定的宽度.似乎应用于TD元素的CSS宽度指的是最小宽度,这样如果在其中放置更大的东西,它将扩展.我尝试过使用table-layout:fixed; 没有帮助.我还看到了表示右列的TD元素不会扩展以填充剩余区域的情况,或者它会出现(例如第三列1px宽将被一直推到右侧),但是在右列周围放置一个边框将显示它仅与其内联内容一样宽,并且宽度设置为100%的块级元素不会填充列的宽度,而是匹配内联内容的宽度(即TD的宽度似乎完全取决于内容).

我看到的一个可能的解决方案太复杂了; 我不在乎IE6,只要它适用于IE8,Firefox 4和Safari 5.

html css resizable two-column-layout

51
推荐指数
2
解决办法
11万
查看次数

Javascript中的元素操作

我正在做一些物理模拟,当然涉及矢量.这对我来说变得非常困难,因为据我所知,javascript不支持这样的任何事情......

#with the aid of numpy
>>> a = np.array([1,2,3])
>>> b = np.array([9,2,7])
>>> a+b
array([10,  4, 10])
Run Code Online (Sandbox Code Playgroud)

我已经能够通过定义将实现相同功能的函数来解决这个限制,但我的公式最终看起来像这样:

add(x, add( mult(v,dt), mult(mult( a(x), .5), Math.pow(dt,2))))
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,是否有更好的方法来实现这一功能,无论它们是我不知道的语言的功能,解决这个问题的库,还是更有效的方法来处理它.

谢谢大家的帮助.

javascript vector

18
推荐指数
4
解决办法
2万
查看次数

区域生长算法

嘿大家.我真的很难弄清楚这一个的逻辑,并希望你可以帮助我.在我继续之前,我只是想让你知道我是业余程序员和初学者,没有正式的计算机科学培训,所以请耐心等待.:D另外,我正在使用Python,但我可以使用Java或类似的东西.

Anywho,我希望实现一个Region Growing用于一个基本的Drawbot.这是一篇关于地区发展的文章:http://en.wikipedia.org/wiki/Region_growing

我设想的方式,抽奖所依据的形象将符合以下标准:

  • 在任意颜色深度下,图像的尺寸最多为3x3英寸

  • 图像将是白色背景上的黑色连续形状

  • 形状可以位于背景上的任何位置.

我已经考虑过这个问题的以下解决方案.虽然有些工作在一定程度上,但每个都在性能或可行性方面存在一些相当大的缺陷(至少对我来说似乎不可行).此外,因为这是一个Drawbot,这需要用一条连续的线来完成.然而,这并不意味着我不能回溯,它只消除了多个起点(种子)的可能性.

考虑的方法:

随机漫步:

随机散步解决这个问题是我的第一直觉.我想,实现这一目标的随机游走程序看起来像这样:

伪蟒蛇......

Cells To Visit = Number of Black Cells
Cells Visited = 0
MarkColor = red
While Cells Visited < Cells To Visit:
    if currentcell is black:
        Mark Current Cell As Visited #change pixel to red
        Cells Visited +=1
    neighbors = Get_Adjacent_Cells() #returns cells either black or red
    next cell = random.choose(neighbors)
    currentCell = next cell
Run Code Online (Sandbox Code Playgroud)

虽然我认为这是可行的,但在我看来它是非常无效并且不能保证良好的结果,但为了实际完成某些事情,我可能最终会尝试这个...我的伪代码中的逻辑是否甚至模糊地正确?

清扫模式:

对我来说,这种方法似乎是最难实现的.我的想法是我可以在形状的一个极端选择一个起点(例如最左边的最低点).从那里它将向右绘制,仅在x轴上移动,直到它击中白色像素.从这里开始,它将在y轴上向上移动一个像素,然后在x轴上向左移动,直到达到白色像素.如果它正上方的像素发生白色,则在x轴上回溯,直到它在其上方找到黑色像素.

进一步检查后的这种方法有一些重大缺陷.当遇到这样的形状时:

diagram1

结果将如下所示:

diagram2

即使我要告诉它在一段时间后开始扫地,中间腿仍然会被忽视.

4/8连接的邻居:

http://en.wikipedia.org/wiki/8-connected_neighborhood

这种方法在我看来是最强大和最有效的,但是在这一点上我无法完全理解它,我也不能想到如何实现它而不会留下一些被忽视的区域

在每个单元格中,我会查看相邻的黑色单元格,设计一些方法来排列我应该首先访问哪一个,访问所有这些,并重复该过程直到所有单元格都被覆盖. …

python algorithm image image-processing flood-fill

9
推荐指数
2
解决办法
8841
查看次数

Python串口通讯

我正在研究一个Arduino项目,由于内存限制,我正在将它与Python脚本连接起来.在Python方面,我有一个2维矩阵,包含坐标的各个x,y值,在这个列表中是26000个坐标对.因此,为了澄清所有人的数据结构pathlist[0][0],将返回列表的第一个坐标的X值.在Python中对此列表执行不同的操作等没有任何问题.然而,我遇到麻烦的是将这些值通过串行发送到Arduino,这是有用的.

由于串行通信的性质(至少我认为是这种情况),我必须将每个整数作为一个字符串发送,一次只发送一个数字.因此,像345这样的数字将作为3个单独的字符发送,当然,这些字符是3,4,然后是5.

我正在努力寻找一种方法来重建Arduino上的整数.

每当我发送一个值时,它就会接收数据并输出它,如下所示:

  //Python is sending over the number '25'
  2ÿÿ52
  //Python is sending the number 431.
  4ÿÿ321ÿÿÿ2
Run Code Online (Sandbox Code Playgroud)

Arduino代码是:

String str;
int ds = 4;

void setup() {
    Serial.begin(9600);
}

void loop(){
    if (Serial.available()>0) {
        for (int i=0; i<4; i=i+1) {
            char d= Serial.read();
            str.concat(d);
        }

        char t[str.length()+1];
        str.toCharArray(t, (sizeof(t)));
        int intdata = atoi(t);
        Serial.print(intdata);
    }
}
Run Code Online (Sandbox Code Playgroud)

Python代码如下所示:

 import serial

 s = serial.Serial(port='/dev/tty.usbmodemfd131', baudrate=9600)

 s.write(str(25))
Run Code Online (Sandbox Code Playgroud)

我几乎可以肯定问题不是源于输出方法(Serial.print),当我声明另一个int时,它在输出上格式正常,所以我假设问题在于如何intdata构造变量.

值得注意的一两件事,可能有助于诊断这个问题是,如果我改变Serial.print(intdata)Serial.print(intdata+5)我的结果是2ÿÿ57,在这里我希望30(25 …

python serial-port arduino pyserial

9
推荐指数
2
解决办法
2万
查看次数

Javascript拼写检查方法

嘿,我正在制作一个基于Web的anagram游戏,用于娱乐和练习.游戏向玩家呈现一个单词,玩家只需要用给定单词中包含的字母构造新单词.我遇到麻烦的地方是拼写检查提交的单词以进行验证.

我最初认为这将是相当微不足道的,我的第一个解决方案是只复制位于usr/share/dict的字典文件,并将提交的答案与该文件中的单词进行比较.然而,当处理不同形式的单词时,这会失败.例如,字典有"ask"字样,但如果用户输入"ask"字样,则认为是错误的.

知道我不能希望编写一个功能性拼写检查算法(我也不想花时间试图解决这个问题)我认为我可以使用内置拼写检查功能的浏览器.但我寻找答案并没有产生任何有用的结果.

有没有办法使用浏览器拼写检查功能,也许使用javascript或其他东西?如果没有,我怎么能最好地解决这个问题呢?

谢谢!

javascript browser api spell-checking

9
推荐指数
2
解决办法
2万
查看次数

Python + Arduino与Mac OS X.

我在Arduino和Python之间进行通信时遇到问题.我有几个问题希望可以回答,但首先也是最重要的是,我需要简单地建立连接.

对于Windows,显然解决方案相当方便,但在Mac OS X上,我显然需要访问一些系统文件(我不熟悉).Python文档向我指出具体的帖子Re:Python可以做串口吗?,但我不认为这完全符合我的目的.

在这一点上,试图仅仅看到沟通的证据,我已经尝试过这个.

Arduino的:

void setup(){
    Serial.begin(9600);
}

void loop()
{
    int d = Serial.read();
    Serial.println(d,BYTE);
}
Run Code Online (Sandbox Code Playgroud)

Python :(几乎来自上面提到的链接...)

 #!usr/bin/python
 import os, fcntl, termios, sys

 serialPath = '/dev/tty.usbmodemfa141'

 ser= os.open(serialPath, 0)
 [iflag, oflag, cflag, lflag, ispeed, ospeed, cc] = range(7)
 settings = termios.tcgetattr(ser)
 settings[ospeed] = termios.B9600
 settings[ispeed] = termios.B0
 print 2
Run Code Online (Sandbox Code Playgroud)

正如这里所证明的那样,我真的不明白我导入的模块到底在做什么.在阅读文档时,我看不到通过串行发送数据的明显方法.所以我正确地猜测无论这个程序的输出是什么,它都会自动发送?

python macos serial-port arduino

6
推荐指数
1
解决办法
2万
查看次数

Javascript碰撞检测

我正在尝试用javascript制作蛇游戏,但我正在努力进行碰撞检测.到目前为止,我已经尝试了各种方法,但是在绝望中,已经确定了每帧存储段的所有位置,然后在动画下一个之前检查是否有任何重复.不幸的是,这种方法未被证明是成功的.

也许这是由于对JS如何处理数组的误解.有一段时间我正在使用if(x in y)但是从我可以告诉它返回如果完全相同的对象在数组中.

这是现场演示:http://jsfiddle.net/AScYw/2/

以下是更容易阅读的代码:http://pastebin.com/ygj73me6

有问题的代码在snake对象中,作为函数collide.

this.collide = function(){
            for(var z=0; z<this.positions.length-1; z++){
                for(var q=z+1; q<this.positions.length-1; q++){
                    return this.positions[z][0] == this.positions[q][0] && this.positions[z][1] == this.positions[q][1];
                }
            }
Run Code Online (Sandbox Code Playgroud)

javascript collision-detection

6
推荐指数
1
解决办法
1085
查看次数

"in"的有效替代方案

我正在编写一个Web爬虫,其最终目标是创建爬虫所采用的路径的映射.虽然我不清楚其他的,以及绝大多数更好的爬行器下拉页面,但我的时钟大约每分钟2,000页.

爬虫使用递归回溯算法,我将其限制为15深度.此外,为了防止我的爬虫无休止地重新访问页面,它将它访问过的每个页面的URL存储在列表中,并检查该列表是否为下一个候选网址.

for href in tempUrl:
    ...
    if href not in urls:
         collect(href,parent,depth+1)
Run Code Online (Sandbox Code Playgroud)

这种方法在下载约300,000页时似乎成了一个问题.此时,爬虫平均每分钟计时500页.

所以我的问题是,在提高效率的同时实现相同功能的另一种方法是什么.

我认为减小每个条目的大小可能会有所帮助,所以我不是追加整个url,而是将前两个和最后一个附加到每个url的字符作为字符串.然而,这并没有帮助.

有没有办法用套装或其他东西做到这一点?

谢谢您的帮助

编辑:作为旁注,我的程序还没有多线程.在我开始学习线程之前,我想我应该解决这个瓶颈.

python memory optimization list

4
推荐指数
2
解决办法
215
查看次数

构建依赖于 Android Project Gradle 的 Java 库

我有一个 Android 项目,它定义了通过协议缓冲区序列化的各种数据类型。我想要一个单独的 Java 项目,它能够在服务器上反序列化这些数据类型。

我的项目结构如下:

Android Library
  - Data
      - TypeA 
      - TypeB
      - ...

Java Server
  - Parser (depends on .Data)
Run Code Online (Sandbox Code Playgroud)

在此示例中,包 Data 中的所有类都自行处理编组。

在尝试构建 Java Server 时,它成功编译了 Android 项目,但最终失败,Gradle 说找不到引用的包。

请注意,如果我只引入其他 Java 库,我可以成功构建具有跨项目依赖关系的 Java 服务器,这让我相信这是一个 Java -> Android 依赖关系问题而不是 Gradle 配置问题。

我考虑过的可能解决方案是从 Android 项目中提取所有这些数据类型,并将它们放在一个单独的 Java 库中。然而,问题在于其中一些类仅提供了一种将 Android 特定类(SensorEvent、Location 等)转换为可与 ProtoBuf 一起使用的类型的方法。我一直在考虑的一种解决方案如下所示:

Data Types
  - TypeA
  - TypeB
  - ...

Android Library
  - Data
    - AndroidTypeA (Class with Android Specific constructor that can be cast to the parent …
Run Code Online (Sandbox Code Playgroud)

java android gradle android-studio

4
推荐指数
1
解决办法
2169
查看次数

了解Python交互式解释器中的打印字节

我偶然发现了我只能将其描述为Python交互式解释器中的错误.虽然这个bug相当无关紧要,但我觉得这是一个有趣的问题,并且很有可能学习python,低级计算和调试.

问题出现在这里:

pic = open("blurry.jpg", "rb")
data = pic.read()
for byte in data:
    print byte
Run Code Online (Sandbox Code Playgroud)

这导致......

#prints the entire file byte by byte_
?

0
?
?
>>> 1;2c
Run Code Online (Sandbox Code Playgroud)

完成此操作后,我发现[] {}\@ ^已分别替换为Ä,Å,ä,å,ö,É,'Ü'.有趣的是,他们仍然保持功能.例如,list = Ä1,2,3,4Å不会引发任何错误.此外,可能更有趣......即使在我退出解释器并重新进入bash之后,这种行为仍在继续.

此外,我只能在使用特定图像时重新创建此行为,我在此处托管:http://imgur.com/lTo6m

我还没有弄清楚我会在哪里开始分析这样的问题,所以我希望有人可以提供一些见解.

一如既往地谢谢!

python terminal byte ansi-escape

1
推荐指数
1
解决办法
310
查看次数

有没有关于我没有得到的os模块的东西?

在过去的半小时里,我一直试图弄清楚这段代码有什么问题.它应该非常直接.此时我几乎已将其复制出文档.但无论我尝试什么,我都会收到语法错误.

这是代码:

def addfiles(folder):
    foldercont = [os.path.normcase(f) for f in os.listdir(folder)]
    for x in foldercont:
        if os.path.isfile(x) == True:
            files.append(os.path.realpath(x)
        if os.path.isdir(x) == True:
            addfiles(os.path.realpath(x))
Run Code Online (Sandbox Code Playgroud)

每当我运行它,我收到错误

 if os.path.isdir(x) == True:
                           ^
 SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

但是,如果我在交互式解释器中编写相同的代码,它运行正常.

这个方法可以简单地不用在if循环中吗?

谢谢您的帮助.我在这一点上真的很沮丧......嘿.

python syntax operating-system file

1
推荐指数
1
解决办法
1141
查看次数

随机生成一组n长度总和x的数字

我正在开发一个有趣的项目,我需要一个算法来做如下:生成一个长度的数字列表n,加起来x

我会满足于整数列表,但理想情况下,我希望留下一组浮点数.

如果这个问题没有得到充分研究,我会非常惊讶,但我不确定该寻找什么.

我过去曾经解决过类似的问题,但这个问题本质上是截然不同的.在我生成将加起来为x的数字列表的不同组合之前.我确信我可以简单地强迫这个问题,但这似乎不是理想的解决方案.

任何人都知道这可能被称为什么,或如何接近它?谢谢大家!

编辑:为了澄清,我的意思是列表应该是长度N,而数字本身可以是任何大小.

edit2:对于我对'set'的不当使用感到抱歉,我使用它作为列表或数组的所有术语.我明白它引起了混乱,我道歉.

algorithm math combinatorics

0
推荐指数
1
解决办法
460
查看次数