我需要为自己的Point类计算两点之间的角度,点a应该是中心点.
方法:
public float getAngle(Point target) {
return (float) Math.toDegrees(Math.atan2(target.x - x, target.y - y));
}
Run Code Online (Sandbox Code Playgroud)
测试1://返回45
Point a = new Point(0, 0);
System.out.println(a.getAngle(new Point(1, 1)));
Run Code Online (Sandbox Code Playgroud)
测试2://返回-90,预期:270
Point a = new Point(0, 0);
System.out.println(a.getAngle(new Point(-1, 0)));
Run Code Online (Sandbox Code Playgroud)
如何将返回的结果转换为0到359之间的数字?
我正在尝试使用PHP 下载此图像以使用GD进行编辑.我找到了许多图像链接解决方案,但这个是下载链接.
编辑:
$curl = curl_init("http://minecraft.net/skin/Notch.png");
$bin = curl_exec($curl);
curl_close($curl);
$img = @imagecreatefromstring($bin);
Run Code Online (Sandbox Code Playgroud)
这是我目前的代码.它显示"301 Moved Permanently".我必须设置CURLOPT吗?
我试图在java中围绕另一个具有指定度数值的2D点旋转,在这种情况下简单地围绕点(0,0)在90度.
方法:
public void rotateAround(Point center, double angle) {
x = center.x + (Math.cos(Math.toRadians(angle)) * (x - center.x) - Math.sin(Math.toRadians(angle)) * (y - center.y));
y = center.y + (Math.sin(Math.toRadians(angle)) * (x - center.x) + Math.cos(Math.toRadians(angle)) * (y - center.y));
}
Run Code Online (Sandbox Code Playgroud)
预期为(3,0):X = 0,Y = -3
返回(3,0):X = 1.8369701987210297E-16,Y = 1.8369701987210297E-16
预期为(0,-10):X = -10,Y = 0
返回(0,-10):X = 10.0,Y = 10.0
这个方法本身有问题吗?我将函数移植到(在Lua-GPWiki中将2D点转换为Java).
编辑:
做了一些性能测试.我不会这么想,但矢量解决方案赢了,所以我会用这个.
我将 Hibernate 与 JPA EntityManager 一起使用,而不是 Hibernate 会话。大多数人似乎建议为每个事务使用新的 EntityManager,所以这就是我正在做的事情。
因此,我连续创建了 10000 个新实体。第一次迭代的堆使用量约为 90 MB,最后一次迭代的堆使用量约为 5 GB。

这是我的迭代代码:
Session session = Core.getDatabase().createEntityManager().unwrap(Session.class);
Query query = session.getNamedQuery("Account.getAllIds");
query.setReadOnly(true);
query.setFetchSize(100);
ScrollableResults accounts = query.scroll(ScrollMode.FORWARD_ONLY);
EntityManager entityManager = Core.getDatabase().createEntityManager();
entityManager.getTransaction().begin();
while (accounts.next()) {
int id = (int) accounts.get(0);
Account account = entityManager.getReference(Account.class, id);
Core.getDatabase().persist(new AccountTest(account));
changes++;
}
entityManager.close();
accounts.close();
session.close();
Run Code Online (Sandbox Code Playgroud)
还有我的持久化函数:
public class Database
{
private final EntityManagerFactory entityManagerFactory;
public Database(String host, String database, String user, String password)
{
Map<String, Object> properties = new …Run Code Online (Sandbox Code Playgroud) String filter = "a-zA-Z0-9äöüÄÖÜß-\\.";
"^[^" + filter + "]*$", ""
inputtext.replaceAll("^[^" + filter + "]*$", "");
Run Code Online (Sandbox Code Playgroud)
这个Java RegEx过滤器应该从inputtext中删除除过滤器中的字符之外的所有字符,但是我得到一个异常,说明不允许使用该点.我已经用两个斜线逃脱了点.怎么了?
我正在用Java编写一个用于AS3中的MMORPG的套接字服务器.我对HashMap.get(byte [])的奇怪行为有一些问题.什么东西可能导致以下问题?
我不使用任何序列化系统,我发送字节,客户端和服务器都知道如何处理接收字节的字节数.客户端发出的第一个请求是要求服务器创建一个播放会话.服务器将生成一个随机会话令牌,作为byte [],包含8个条目,并将令牌添加到HashMap.响应将是9个字节长.第一个定义响应类型(在本例中为字节'+',表示"您已被接受.这是您的令牌.")和字节2-9是令牌.客户端必须存储令牌并将其附加到任何进一步的请求(此概念可以与PHP会话进行比较).
这是将客户端添加到HashMap的代码:
byte[] token = Util.generateToken();
// f is ResultSet entry of JDCB SQL query return value
Client client = new Client(f.getInt("id"), token);
Core.clients.put(token, client);
// I display client.token instead of token to make sure client != null
Log.log("User " + f.getString("name") + " has logged in with session token " + Util.getHexString(client.token) + ".");
Run Code Online (Sandbox Code Playgroud)
日志:
[01:50:30]用户已使用会话令牌92登录:B7:F8:C6:4B:53:17:3A.
这些是一些调试行,将在任何进一步的请求中显示:
// Show (byte[]) Token as Hex String, 8 bytes long
Log.soc("Token: " + Util.getHexString(buffer.getBytes(1, 9)));
// Show all keys …Run Code Online (Sandbox Code Playgroud)