我正在尝试构建一些图像代数代码,它可以处理具有不同类型像素的图像(基本上是线性像素缓冲区+尺寸).为了实现这一点,我已经定义了一个参数化的Pixel特性,其中有一些方法应该能够与任何Pixel子类一起使用.(目前,我只对使用相同Pixel类型的操作感兴趣.)这是:
trait Pixel[T <: Pixel[T]] {
def div(v: Double): T
def div(v: T): T
}
Run Code Online (Sandbox Code Playgroud)
现在我定义一个Pixel类型,它具有基于三个双打(基本上是RGB 0.0-1.0)的存储,我称之为TripleDoublePixel:
class TripleDoublePixel(v: Array[Double]) extends Pixel[TripleDoublePixel] {
var data: Array[Double] = v
def this() = this(Array(0.0, 0.0, 0.0))
def div(v: Double): TripleDoublePixel = {
new TripleDoublePixel(data.map(x => x / v))
}
def div(v: TripleDoublePixel): TripleDoublePixel = {
var tmp = new Array[Double](3)
tmp(0) = data(0) / v.data(0)
tmp(1) = data(1) / v.data(1)
tmp(2) = data(2) / v.data(2)
new TripleDoublePixel(tmp)
}
}
Run Code Online (Sandbox Code Playgroud)
然后我们使用像素定义一个图像:
class Image[T](nsize: …Run Code Online (Sandbox Code Playgroud) 我clojure.contrib.sql用来从SQLite数据库中获取一些记录.
(defn read-all-foo []
(with-connection *db*
(with-query-results res ["select * from foo"]
(into [] res))))
Run Code Online (Sandbox Code Playgroud)
现在,我真的不想在从函数返回之前实现整个序列(即我想让它保持懒惰),但是如果我res直接返回或者将它包装成某种惰性包装器(例如我想要确定map结果序列转换),SQL相关的绑定将被重置,连接将在我返回后关闭,因此实现序列将引发异常.
如何将整个函数包含在闭包中并返回一种迭代器块(如yield在C#或Python中)?
或者是否有另一种方法可以从此函数返回延迟序列?
我正在为JavaScript 寻找一个简单的计算机代数系统(cas),但我找不到谷歌的任何东西.我只需要基本功能:
你知道这样的图书馆吗?
这样的事情(是的,这不涉及一些边缘情况 - 这不是重点):
Run Code Online (Sandbox Code Playgroud)int CountDigits(int num) { int count = 1; while (num >= 10) { count++; num /= 10; } return count; }
你对此有何看法?也就是说,使用函数参数作为局部变量.
两者都放在堆栈上,性能几乎相同,我想知道这方面的最佳实践方面.
当我为这个函数添加一个额外的冗余线路时,我觉得自己像个白痴int numCopy = num,但它确实让我感到烦恼.
你怎么看?这应该避免吗?
我们可以用#import导入类声明:
#import "SomeClass.h"
Run Code Online (Sandbox Code Playgroud)
或者用@class声明:
@class SomeClass;
Run Code Online (Sandbox Code Playgroud)
有什么区别,什么时候应该使用它们?
我正在维护一些我目前正在转换为C#的Java代码.
Java代码是这样做的:
sendString(somedata + '\000');
在C#中,我试图做同样的事情:
sendString(somedata + '\000');
但是在'\''上,VS2010告诉我"字符文字中的字符过多".如何在C#中使用'\n''?我试图找出角色是什么,但它似乎是""或某种换行符.
你对这个问题一无所知吗?
谢谢!
是否有更友好的方式来获取FontMetrics的实例
FontMetrics fm = Graphics.getFontMetrics(Font);
Run Code Online (Sandbox Code Playgroud)
我讨厌这种方式,因为下面的例子:
如果您想在游戏中创建一个菜单,并且您希望屏幕中心的所有菜单项都需要fontmetrics.但是,大多数情况下,菜单项是可点击的.所以我创建了一个数组,Rectangles并且所有矩形都适合于项目,因此当按下鼠标时,我可以简单地使用
for (int i = 0; i < rects.length; i++)
if (rects[i].contains(mouseX, mouseY)) { ... }
Run Code Online (Sandbox Code Playgroud)
但是为了创建rects,我还需要FontMetrics作为它们的坐标.所以这意味着我必须在菜单的paint-method中构造所有的矩形.
所以我想要一种获取FontMetrics的方法,这样我就可以在构造函数调用的方法中构造Rectangles.
我正在用C#编写Conway的生命游戏的实现.这是我用来绘制网格的代码,它在我的panel_Paint事件中.g是图形上下文.
for (int y = 0; y < numOfCells * cellSize; y += cellSize)
{
for (int x = 0; x < numOfCells * cellSize; x += cellSize)
{
g.DrawLine(p, x, 0, x, y + numOfCells * cellSize);
g.DrawLine(p, 0, x, y + size * drawnGrid, x);
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行我的程序时,它没有响应,直到它完成绘制网格,这需要几秒钟在numOfCells = 100&cellSize = 10.删除所有乘法使它更快,但不是很多.
绘制网格有更好/更有效的方法吗?
谢谢
我想知道Symfony 2.0是否足够稳定可用?
因为我之前从未使用过Symfony.
似乎Symfony 2比以前的版本要好得多,我不想在几个月后重新学习/重新编写所有内容.
你认为它什么时候发布?
现在使用2.0是明智的选择吗?
我配置了以下程序集:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
<executions>
<execution>
<id>${project.name}-test-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<finalName>${project.name}-test</finalName>
<filters>
<filter>src/assemble/test/distribution.properties</filter>
</filters>
<descriptors>
<descriptor>src/assemble/distribution.xml</descriptor>
</descriptors>
<attach>true</attach>
</configuration>
</execution>
<execution>
<id>${project.name}-prod-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<finalName>${project.name}-prod</finalName>
<filters>
<filter>src/assemble/prod/distribution.properties</filter>
</filters>
<descriptors>
<descriptor>src/assemble/distribution.xml</descriptor>
</descriptors>
<attach>true</attach>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
这产生了两个zip文件:
我对属性attach = true的期望是,安装了两个zip文件,其名称在属性finalName中给出.但结果是,只有一个文件安装(附加)到工件.maven协议是:
该插件使用artifact-id而不是属性finalName!这是一个错误吗?
最后一次安装会覆盖第一次安装.如何安装具有不同名称的这两个文件?
谢谢你的调查.罗兰
c# ×2
java ×2
character ×1
clojure ×1
drawing ×1
fontmetrics ×1
frameworks ×1
graphics ×1
iphone ×1
java-2d ×1
javascript ×1
maven-2 ×1
optimization ×1
php ×1
scala ×1
symfony ×1