小编Jja*_*ang的帖子

检测屏幕上的鼠标移动

我创建了一个MouseMotionDetection类,该角色只是检测用户是否已将鼠标移动到屏幕上的任何位置.

为此我在我的类构造函数中创建了一个新的JFrame,其屏幕大小是不可见的,所以基本上我在整个屏幕上观察鼠标运动.

但是,我有一个奇怪的错误:

在代码的当前形式中,一旦激活此类,我只检测到一个鼠标移动而没有其他任何东西,它在此之后就会停止工作.但是,如果我将设置帧backfround的行放在注释中的0f,0f,0f,0f(透明)然后激活,整个屏幕变为灰色,我会按照我的需要跟踪所有鼠标动作(我只是可以看不到任何东西.

我真的不明白为什么会发生这种情况,没有看到相关问题,也没有在这个讨论MouseMotion事件的相关javadoc中.

这是代码:

public class MouseMotionDetection extends JPanel
                implements MouseMotionListener{

public MouseMotionDetection(Region tableRegion, Observer observer){
    addMouseMotionListener(this);
    setBackground(new Color(0f,0f,0f,0f));
    JFrame frame = new JFrame();         
    frame.setUndecorated(true);
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    frame.setSize(screenSize);
    frame.setBackground(new Color(0f,0f,0f,0f));
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    frame.setAlwaysOnTop(true);
    JComponent contentPane = this;
    contentPane.setOpaque(true);
    frame.getContentPane().add(contentPane, BorderLayout.CENTER);
    frame.setVisible(true);
}

@Override
public void mouseDragged(MouseEvent arg0) {

}

@Override
public void mouseMoved(MouseEvent arg0) {
    System.out.println("mouse movement detected");
}
Run Code Online (Sandbox Code Playgroud)

java user-interface swing mouseevent translucency

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

在Android上的Google地图中计算可见半径

我正在试图弄清楚如何计算屏幕可见区域最大半径.

(在你说之前:嘿!矩形没有半径!我知道屏幕是矩形的(如果摄像机位于90度而不是倾斜),我说的是包围屏幕的假想圆的半径,或者,屏幕中心与矩形的一个角之间的边缘距离是相同的.

所以,据我所知,在屏幕没有倾斜的正常情况下,我可以将VisibleRegion.latLngbounds.southwest和屏幕中心之间的距离找到半径,但是当屏幕倾斜时,它会变成梯形.

现在,如果屏幕是等长梯形,那么我可以以VisibleRegion.farLeft为例(它将等于farEast)并以这种方式计算距离:

VisibleRegion vr = map.getProjection().getVisibleRegion();

Location center = new Location("center");
center.setLatitude(screenCenter.latitude);
center.setLongitude(screenCenter.longitude);

Location farVisiblePoint = new Location("farPoint");
farVisiblePoint.setLatitude(vr.farLeft.latitude);
farVisiblePoint.setLongitude(vr.farLeft.longitude);

float radius = center.distanceTo(farVisiblePoint);
Run Code Online (Sandbox Code Playgroud)

我的问题是:

地图上有任何情况,上面的计算会出错吗?梯形不是一个等one的吗?

谢谢.

java android google-maps

5
推荐指数
0
解决办法
1223
查看次数

为什么我们在深度学习中使用mAp评分来评估物体探测器?

在这个Tensorflow检测模型动物园中,他们提到了不同检测体系结构的COCO mAp评分.他们还表示,mAp得分越高,准确度越高.什么是不明白的是如何计算?它可以获得的最高分是多少?为什么这个mAp评分与数据集的数据不同?

object-detection deep-learning

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

使用 Redux Saga 并行获取数据

我想知道在 Redux Saga 中实现以下行为的正确方法是什么:

  1. 操作由用户交互调度。
  2. 适当的侦听 saga 现在尝试通过并行调用多个异步方法从 API 获取数据。
  3. 每次成功响应后,独立于其余请求,将使用检索到的数据调度操作(从而更新 UI 等)。
  4. 收集错误响应,然后在所有请求完成后通过单个操作进行调度(例如,为了稍后显示单个错误吐司)。

我已经通过使用以下模式成功实现了它(抱歉,我缺少完整的代码示例,目前不可用):

function* fetchData(dataType) {
  const resp = yield call(MyApi.fetchData, dataType);
  if(!resp.err) {
    yield put(fetchDataSuccess, resp.data);
  } else {
    return resp.err;
  }
}

function* mySaga() {
  const errors = yield all([
    call(fetchData, 'typeOne'),
    call(fetchData, 'typeTwo),
    call(fetchData, 'typeThree)
  ]);
  // errors contains the returned errors
}
Run Code Online (Sandbox Code Playgroud)

这是达到预期效果的最佳方式吗?

javascript reactjs redux redux-saga

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

AssertionError:在 Pytorch 的 AutomaticMixedPrecision 中没有记录此优化器的 inf 检查

我正在使用 PyTorch 的 AutomaticMixedPrecision 功能来训练具有更小占用空间和精度的网络。
在某个时刻,网络中的一些嵌入的张量中包含 NaN,因此我想将其替换为 0,以便执行在线硬负样本挖掘​​。

然而,在像这样替换张量中的 NaN 之后:

tensor[torch.isnan(tensor)] = 0
Run Code Online (Sandbox Code Playgroud)

在执行下一个缩放器 ste (scaler.step(optimizer)) 时出现以下错误:

    assert len(optimizer_state["found_inf_per_device"]) > 0, "No inf checks were recorded for this optimizer."
AssertionError: No inf checks were recorded for this optimizer.
Run Code Online (Sandbox Code Playgroud)

在消除此错误的同时将 NaN 归零的正确方法是什么?

python deep-learning pytorch

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

使用java中的文件

我有一个字符串数组.我想将这些字符串保存在文件中.问题是,我需要创建一个名为db.txt的新文件(仅当它不存在时),然后以某种方式向它写入字符串.

然后我希望能够从该文件中读取字符串并将它们插入到数组中.

插入和使用数组不是问题,但问题是如何弄乱文件?如何创建新的文本文件(如果尚未存在),如何写入文件以及如何从中读取文件?

试图自己学习,但我在互联网上看到了很多方式,并感到困惑.

java file-io

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

.net web api服务器中的静态变量

我有一个web api服务器,它基本上响应2个请求:停止和启动.

在开始时它会执行几项操作,例如,初始化每X秒执行一次方法的计时器,并且在停止时它会停止计时器.

为了实现这一点,我创建了一个处理操作逻辑的单例类.(它需要是单例,因此定时器和更多变量将仅对所有请求存在一次).

服务器运行正常,但最近我在访问Globalconfiguration.AppSettings时遇到了AccessViolationException,以便从我的webconfig文件中检索一个值.

我通过查看我的日志发现了调用单例类终结器,即使我没有重启服务器.

终结器调用我经常使用的方法并在其他方案中正常工作,并且此方法使用抛出异常的GlobalConfiguration类.

我试图找到原因而没有成功.

所以基本上这里有两个错误:1.为什么终结器被称为蓝色?服务器可以运行一周.2. AccessViolationException.

也许错误是相关的?如果我的应用程序内存以某种方式被清除,它会导致调用终结器和访问GlobalConfiguration的异常吗?只是一个理论....

或许也许我不能妥善处理单身人士?但是,在阅读了c#web服务器中的静态变量之后,我发现在应用程序存在时它们应该存在,因此这个bug可能与处理单例无关.我确实处理好了 - 单例有一个私有静态字段,它保存实际的实例,并通过锁定和双重检查进行初始化,以防止多个线程创建单例.

我的方法好吗?你看到我在这种行为中没有预料到的任何可能的错误,或者你知道.net框架的任何行为可能会导致我的静态单例被破坏吗?

.net c# asp.net asp.net-web-api

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

const ref和const指针之间的区别,c ++

我想知道c ++中const ref和const指针之间的区别是什么.当我宣布某事为const ref时,我可以改变它的值吗?或者const继续对象?因为我知道const指针意味着你不能改变POINTER,但你可以改变它指向的VALUE.

例如:

const char& a; // ?
const char* a; // pointer is const
Run Code Online (Sandbox Code Playgroud)

c++ pointers const reference

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

返回'finally'语句

我正在尝试从文件中读取ObjectOutputStream并将其转换为arraylist.整个事情发生在一个应该读取文件并返回数组列表的方法中:

public static List<Building> readFromDatabase(){
    String fileName="database.txt";
    FileInputStream fileIStream=null;
    ObjectInputStream in=null;
    List<Building> buildingsArr=null;
    try
     {
        fileIStream = new FileInputStream(fileName);
        in = new ObjectInputStream(fileIStream);
        buildingsArr=(ArrayList<Building>)in.readObject();
     }
     catch(IOException e)
     {
        e.printStackTrace();
     }
     catch(ClassNotFoundException e)
     {
        Console.printPrompt("ArrayList<Building> class not found.");
        e.printStackTrace();
     }
    finally{
        Console.printPrompt("Closing file...");
        close(in);
        close(fileIStream);
        return buildingsArr;
    }
}
Run Code Online (Sandbox Code Playgroud)

Java告诉我这很危险.有哪些替代方案?我不能把返回放在"try"块中,因为它不会这样做/它不会关闭"finally"块中的文件.我需要确保文件将被关闭,并返回我创建的数组列表.有任何想法吗?

java file stream

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

到 Kubernetes 的多播流量

我希望我的 pod 接收从我的 kubernetes 集群外部流向我节点中特定端口的多播网络流量。

我正在考虑两种解决方案:

  1. hostNetwork: true标志yamlhostPort配置一起添加到他们的文件中,以便直接接收到 pod 的流量。
  2. 使用命令在节点上本地转发流量从一个eth0接口到docker0另一个接口iptables

方法1是Kubernetes的官方特性,但是感觉就像打破了docker最初强加的安全墙,可能会导致与主机进程的端口冲突等。

另一方面,方法 2 将多播网络流量透明地转发到 pod。
尽管我可以使用自动化工具来传播此配置(ansible/salt 等),但任何配置“超出 Kubernetes 范围”的东西对我来说都感觉有点棘手。

想听听您的优点和缺点、评论,以及多播到 kubernetes 集群的问题的其他解决方案。

networking multicast docker kubernetes

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