我在Javascript中实现了一个二维kd树(在GitHub上查看),我将它用于D3旁边的最近邻搜索.
我了解到D3 中有一个四叉树实现,但也发现API文档很少,谷歌搜索并不富有成效.在可能的情况下,我宁愿使用一个经过良好旅行的图书馆而不是我自己的重新发明的轮子.
如何使用D3的四叉树执行最近邻搜索?最近的邻居,我的意思是:
如何通过CUPS API获取CUPS打印作业失败的原因?
使用CUPS API,我打印了两个无法打印的作业.在CUPS Web界面上,我可以看到它们失败的原因:"不支持的打印数据." 和"无法写入打印数据".

但是,API似乎不包含这些原因.该cupsGetJobs()方法返回cups_job_s结构,如下所示:
struct cups_job_s {
time_t completed_time;
time_t creation_time;
char *dest;
char *format;
int id;
int priority;
time_t processing_time;
int size;
ipp_jstate_t state;
char *title;
char *user;
};
Run Code Online (Sandbox Code Playgroud)
我检查了所有这些字段,其中没有一个包含屏幕截图中显示的错误字符串.
我有这样的事情:
class X():
def __init__(self):
self.__name = None
def _process_value(self, value):
# do something
pass
def get_name(self):
return self.__name
def set_name(self, value):
self.__name = self._process_value(value)
name = property(get_name, set_name)
Run Code Online (Sandbox Code Playgroud)
我可以替换get_name和set_name使用lambda函数吗?
我试过这个:
name = property(lambda self: self.__name, lambda self, value: self.__name = self.process_value(value))
Run Code Online (Sandbox Code Playgroud)
但编译器不喜欢我的setter函数.
如何使用RandomAccessFileJava 访问Android资源?
这是我希望如何工作(但它没有):
String fileIn = resources.getResourceName(resourceID);
Log.e("fileIn", fileIn);
//BufferedReader buffer = new BufferedReader(new InputStreamReader(fileIn));
RandomAccessFile buffer = null;
try {
buffer = new RandomAccessFile(fileIn, "r");
} catch (FileNotFoundException e) {
Log.e("err", ""+e);
}
Run Code Online (Sandbox Code Playgroud)
日志输出:
fileIn(6062): ls3d.gold.paper:raw/wwe_obj
Run Code Online (Sandbox Code Playgroud)
我的控制台中出现以下异常:
11-26 15:06:35.027: ERROR/err(6062): java.io.FileNotFoundException: /ls3d.gold.paper:raw/wwe_obj (No such file or directory)
Run Code Online (Sandbox Code Playgroud) 我正在编写一个使用kd树在二维空间中查找点的应用程序.在开发过程中,能够"看到"每个点周围的最近邻区域会很好.
在附图中,红点是kd树中的点,并且围绕每个点的蓝线限定了最近邻搜索将返回包含点的区域.
图像是这样创建的:
for each point in the space:
da = distance to nearest neighbor
db = distance to second-nearest neighbor
if absolute_value(da - db) < 4:
draw blue pixel
Run Code Online (Sandbox Code Playgroud)
该算法有两个问题:
什么是一组点的"可视化"?
有哪些好算法可以创建这样的可视化?

algorithm data-visualization kdtree computational-geometry space-partitioning
int[] records = job.getTargetSearchIDs();
topology.applyMatcherSearchWeight(records);
int[] mIDs = topology.getMatcherIds();
SystemResponse[] sysResponse = new SystemResponse[mIDs.length];
Map<Integer, SearchCommand> mrCmdsMap = new HashMap<Integer, SearchCommand>();
Run Code Online (Sandbox Code Playgroud)
mID 的长度为 250,记录的长度为 750 万个整数。我希望这个循环在配备 8 核 Intel Xeon X5355 处理器、64 位 Linux (Ubuntu) 和 32 位 Java 的服务器上运行不到 3 秒。
for (long mID : mIDs) {
List<Integer> recIDsToMatch = new LinkedList<Integer>();
Matcher matcher = topology.getMatcherById(mID);
for (long record : records) {
if (matcher.getRange().isInRange(record))
recIDsToMatch.add(record);
}
if (recIDsToMatch.size() > 0) {
SearchCommand command = new SearchCommand(job.getMatchParameters(),
job.getRequestType(),
job.getId(),
job.getMatchParameters().getEngineProperties(), …Run Code Online (Sandbox Code Playgroud) 我有一个AlertDialog我使用自定义对话框视图.自定义标题视图的想法似乎很简单,但自定义标题周围有一个黑色边框,我似乎无法摆脱它.顶部,左侧和右侧具有单像素边界,而底侧具有约5像素边界.
用Java创建对话框:
View titleView = inflater.inflate(R.layout.part_list_item, parent, false);
((TextView) titleView.findViewById(R.id.partName)).setText(titleText);
AlertDialog productDialog = new AlertDialog.Builder(getContext())
.setCustomTitle(titleView)
.setAdapter(adapter, doNothingClickListener)
.create();
Run Code Online (Sandbox Code Playgroud)
自定义标题视图布局,part_list_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ff0000"
android:id="@+id/partName"
android:layout_marginLeft="6dip"
android:textAppearance="?android:attr/textAppearanceLargeInverse"
/>
Run Code Online (Sandbox Code Playgroud)
我所看到的:

我想看到的:

有任何想法吗?
我有两台黑白打印机、两台彩色打印机和一些虚拟打印机(传真、CutePDF Writer 等)。
根据DC_COLORDEVICE查询DeviceCapabilities,只有传真虚拟打印机是黑白的。
根据PLANES查询BITSPIXEL,GetDeviceCaps所有打印机都有一个平面,只有Fax和CutePDF有1位/像素(黑白)。
根据NUMCOLORS查询GetDeviceCaps,只有传真是黑白的。
我对直接查询驱动程序不感兴趣,所以我还没有尝试过。
如何使用 Win32 准确检测彩色打印机?
这种字符串格式工作得很好:
err := foo()
if err != nil {
fmt.Printf("foo returned '%s' when called\n", err)
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下打电话有什么好处吗err.Error()?
fmt.Printf("foo returned '%s" when called\n", err.Error())
Run Code Online (Sandbox Code Playgroud)