小编Sha*_*ien的帖子

Java Robot类模拟人类鼠标移动

我正在开发一个关于远程控制的项目,从客户端向服务器发送conrdinate x和y游标.

robot.mouseMove(x,y);
Run Code Online (Sandbox Code Playgroud)

只会将光标移动到特定点而不将光标移动到原点

我发现这个简单的algorthim可以模拟鼠标的持续运动

for (int i=0; i<100; i++){
   int x = ((end_x * i)/100) + (start_x*(100-i)/100);
 int y = ((end_y * i)/100) + (start_y*(100-i)/100);
 robot.mouseMove(x,y);
} 
Run Code Online (Sandbox Code Playgroud)

但是这个algorthim仍然太简单了,它只是缓慢地从一个点移动到另一个点,这仍然不像人类的行为.

我从网上读过一些关于远程控制的开放式代码,我发现这个项目 http://code.google.com/p/java-remote-control/ 正在使用来自MouseListener类的方法调用MosueMovement,他们使用这个方法执行"拖动".

我想知道是否有人知道更好的方法吗?

java mouse awt

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

Java DOM如何检查XML中是否存在节点

这是我的xml文件

<?xml version="1.0" encoding="UTF-8"?>
<productlist>
<product>
<title>1</title>
<price>30</price>
</product>
<product>
<title>2</title>
<price>9</price>
</product>
<product>
<title>3</title>
</product>
</productlist>
Run Code Online (Sandbox Code Playgroud)

我需要做的是使用Java DOM API打印出包含"price"标签的XML文件中的所有内容.这样的事情

title:1
price:30 
title:2 
price:9
Run Code Online (Sandbox Code Playgroud)

在org.w3c.dom文档中,我只找到hasAttribute(String name)方法来检查这个元素是否有属性,但我在文档中找不到类似"hasTag(String name)"的方法.我找到这个网站http://www.java-forums.org/xml/62136-check-whether-xml-tag-exists-while-parsing-xml-using-dom-java.html但不幸的是我无法打开现场.希望你能帮忙.

java xml dom

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

使用Prolog中的广度优先搜索(BFS)解决食人族/传教士问题?

我的工作解决了经典传教士(M)和食人族(C)的问题,一开始状态是3 M和左岸3 C和目标状态是3M,右岸3C.我已完成程序中的基本功能,我需要实现搜索策略,如BFS和DFS.

基本上我的代码是从互联网上学习的.到目前为止,我可以使用DFS方法成功运行程序,但我尝试使用BFS运行它总是返回false.这是我的第一个SWI-Prolog程序,我找不到我的代码问题在哪里.

这是我的代码的一部分,希望你能帮助我找到它的问题

solve2 :-
   bfs([[[3,3,left]]],[0,0,right],[[3,3,left]],Solution),
   printSolution(Solution).

bfs([[[A,B,C]]],[A,B,C],_,[]).
bfs([[[A,B,C]|Visisted]|RestPaths],[D,E,F],Visisted,Moves) :-
   findall([[I,J,K],[A,B,C]|Visited]),
     (
       move([A,B,C],[I,J,K],Description),
       safe([I,J,K]),
       not(member([I,J,K],Visited)
     ),
     NewPaths
   ),
   append(RestPaths,NewPaths,CurrentPaths),
   bfs(CurrentPaths,[D,E,F],[[I,J,K]|Visisted],MoreMoves),
   Moves = [ [[A,B,C],[I,J,K],Description] | MoreMoves ].


move([A,B,left],[A1,B,right],'One missionary cross river') :-
   A > 0, A1 is A - 1.  
   % Go this state if left M > 0. New left M is M-1
.
.
.
.
.
safe([A,B,_]) :-
   (B =< A ; A = 0),
   A1 is 3-A, B1 is 3-B,
   (B1 =< A1; A1 …
Run Code Online (Sandbox Code Playgroud)

breadth-first-search prolog river-crossing-puzzle

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

矩阵变换

我正在开发一个项目,我需要将结果矩阵转换为更简单的矩阵.更具体地说,对于矩阵中的每一列,我想在行中找到最大值并将其更改为1,其余值将更改为0.我不知道如何搜索此问题,所以我决定发布在这里.

例如,我有一个矩阵X:

X = [2 8 4; 7 3 9;1 2 3];
X = 2 8 4
    7 3 9
    1 2 3
Run Code Online (Sandbox Code Playgroud)

我想把这个矩阵转换成

X' = 0 1 0
     1 0 1
     0 0 0
Run Code Online (Sandbox Code Playgroud)

我只知道如何使用for循环从每一行返回最大值,但我不知道如何返回该值的矩阵中的位置并将其余部分转换为零.

这是我的想法

  1. 首先创建一个新的相同维度零矩阵
  2. 找到行中的最大值
  3. 找到最大值的位置
  4. 将值1分配到相同位置的新矩阵中
  5. 通过for循环重复2和3

我是Matlab的新手,希望你能提供帮助.

这是我的计划的结果之一

 2.0680   17.7410    0.8992   -3.0221
 3.6093    7.3443    6.7442    0.9874
-0.9095   -3.3220   -1.4857   -0.0023
-1.1753  -16.7906    0.3672    3.7697
-1.6856   -6.0929   -2.8614    0.5054
 1.0794    3.8352    1.9894    0.1686
-0.4584   -0.3923   -1.2525   -0.4761
Run Code Online (Sandbox Code Playgroud)

我希望这个矩阵转换成

0 1 0 0
1 0 1 …
Run Code Online (Sandbox Code Playgroud)

matlab matrix

3
推荐指数
2
解决办法
504
查看次数

Android:是否可以创建空心(空心)布局?

对不起,如果我的话题令人讨厌,我不确定用哪个词来描述我需要的布局.

目前我正在开发一个项目,需要在mapview上覆盖一个空心布局,空心布局将用于显示远距离定位点,我发布图像来演示我的意思.

Mapview与storke叠加

基本上整个屏幕由Mapview填充,叠加布局应覆盖它而不覆盖中心,就像我在图像中显示的那样.

这是xml显示我做了如上所述的布局

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<com.google.android.maps.MapView
android:id="@+id/MapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
android:apiKey="..."
/>

   <View
   android:layout_width="320dip"
   android:layout_height="50dip"
   android:layout_gravity="center_horizontal|top"
   android:background="#800ff4ff"
   android:textColor="#ffffffff" />


 <View
    android:layout_width="320dip"
    android:layout_height="50dip"
    android:layout_gravity="center_horizontal|bottom"
    android:background="#800ff4ff"
    android:textColor="#ffffffff"
  />

<View
    android:layout_width="50dip"
    android:layout_height="520dip"
    android:layout_gravity="center_vertical|right"
    android:background="#800ff4ff"
    android:textColor="#ffffffff" />

 <View
    android:layout_width="50dip"
    android:layout_height="520dip"
    android:layout_gravity="center_vertical|left"
    android:padding="20dip"
    android:background="#800ff4ff"
    android:textColor="#ffffffff" />

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

我使用framelayout来允许布局覆盖其他布局,并在每个边缘创建4个sepreate来模拟我真正想要的东西(空心).我只是不确定是谁让布局只显示4边并保持中心隐形,如果任何人可以帮助请给我一些指导.谢谢.

layout android

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