如何在屏幕上获得当前的鼠标协调?我只知道Mouse.GetPosition()哪个获取了元素的mousePosition,但我想在不使用元素的情况下获得协调.
我一直在寻找一个与我的用例相匹配的例子,却找不到一个.我正在尝试将屏幕鼠标坐标转换为考虑到相机的3D世界坐标.
解决方案我发现所有人都做射线交叉以实现对象拾取.
我想要做的是将Three.js对象的中心定位在鼠标当前"结束"的坐标上.
我的相机位于x:0,y:0,z:500(虽然它会在模拟过程中移动)并且我的所有物体都在z = 0时具有不同的x和y值,所以我需要知道基于X,Y的世界假设az = 0表示跟随鼠标位置的对象.
这个问题看起来像一个类似的问题,但没有解决方案:在THREE.js中获取鼠标相对于3D空间的坐标
给定屏幕上的鼠标位置,其范围为"左上角= 0,0 |右下角= window.innerWidth,window.innerHeight",任何人都可以提供将Three.js对象移动到鼠标坐标的解决方案沿z = 0?
我想知道如何基于 X、Y 鼠标坐标在 android 上执行拖动?考虑两个简单的例子,Team Viewer/QuickSupport分别在远程智能手机和Windows Paint的Pen上绘制“密码模式”。
我所能做的就是模拟触摸(使用dispatchGesture()和AccessibilityNodeInfo.ACTION_CLICK)。
我找到了这些相关链接,但不知道它们是否有用:
下面是我的工作代码,用于将鼠标坐标(在PictureBox控制范围内)发送到远程电话并模拟触摸。
Windows 窗体应用程序:
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
foreach (ListViewItem item in lvConnections.SelectedItems)
{
// Remote screen resolution
string[] tokens = item.SubItems[5].Text.Split('x'); // Ex: 1080x1920
int xClick = (e.X * int.Parse(tokens[0].ToString())) / (pictureBox1.Size.Width);
int yClick = (e.Y * int.Parse(tokens[1].ToString())) / (pictureBox1.Size.Height);
Client client = (Client)item.Tag;
if (e.Button == MouseButtons.Left)
client.sock.Send(Encoding.UTF8.GetBytes("TOUCH" + xClick + "<|>" + …Run Code Online (Sandbox Code Playgroud) 在过去的几天里,另一个问题一直在盯着我.正如您可能从我的其他问题中看到的那样,我正在创建一些思维导图软件.所以(非常简化)我有两个div.一个是页面上的正方形,另一个在div内部,大约是可拖动的10倍.这样可以将对象放置在屏幕上,然后稍微移动到侧面,同时添加另一个对象等.我通过创建外部div可滚动来实现这一点.
我遇到的问题与java脚本中的鼠标位置有关.如果我将鼠标放在div中的任何位置它将不正确,因为我将内部div的大小减半到顶部和左侧(因此用户有效地看着画布的中间并且可以按照他们喜欢的任何方式) .我已经尝试了数十种不同的鼠标坐标功能,但这些功能似乎都不起作用.我在网络上找到的应该是跨浏览器的示例是:
function getMouse(e) {
var posx;
var posy;
if (!e) var e = window.event;
if (e.pageX || e.pageY) {
posx = e.pageX;
posy = e.pageY;
}
else if (e.clientX || e.clientY) {
posx = e.clientX + document.body.scrollLeft + document.getElementById("canvas").scrollLeft;
posy = e.clientY + document.body.scrollTop + document.getElementById("canvas").scrollTop;
}
} //getMouse
Run Code Online (Sandbox Code Playgroud)
但即使这样也行不通.我几乎可以肯定错误是因为我的内部div是可拖动的.希望我在尝试解释时有一些意义,但如果我没有这里是一个非常简单的jsfiddle,试图证明我的情况(虽然这里没有鼠标点击,纯粹是为了演示我的div结构).在我制作的产品中,用户将双击画布并显示一个新对象,因此鼠标坐标需要正确的原因.
我希望有人可以帮助我.
提前致谢.
编辑:未能提到我的部分应用程序,我使用JQuery所以无论是否有JQuery的解决方案都没问题.再次感谢.
我正在设计一个网站,只是意识到如果我知道自己的光标坐标会对我有很大的帮助.
我主要使用Firefox来预览新页面.所以Firefox的附加组件会很棒.我检查了Firebug,但没有找到那里的功能.
有谁知道如何在Firefox中显示当前光标坐标?
我在javascript/jquery(基于DOM,而不是canvas)中构建某种拖放应用程序.
我们的想法是能够在3D场景上拖动div(以3D旋转的div).
它适用于2D平面图,问题是当我在3D中旋转场景时,对象位置不会反映实际的鼠标位置,而是以3D形式转换的坐标
插图例子:

我希望对象相对于鼠标的绝对位置移动.
我像这样计算鼠标位置:
document.addEventListener(gestureMove, function (event) {
if (mouseDown == true) {
event.preventDefault();
moveX = (event.pageX - $('#scene').offset().left);
moveY = (event.pageY - $('#scene').offset().top);
}
#scene {
width: 1000px;
height: 1000px;
-webkit-transform-style: preserve-3d;
-webkit-transform: rotateX( 35deg );
}
Run Code Online (Sandbox Code Playgroud)
早期的解决方案是基于初始位置计算鼠标位置和对象之间的差异,并在拖动期间将其添加到对象位置.它工作正常,但动画真是波涛汹涌而且根本不光滑.
我确信有一种更简单的方法来获得相对于3D计划的鼠标坐标,但此时无法找到真正的解决方案.
关于此主题的大多数搜索结果都指向面向游戏的语言或canvas/webgl问题.
有任何想法吗 ?
谢谢
假设我在主窗口中有一个小部件,并且想要仅在小部件上跟踪鼠标位置:这意味着小部件的左下角必须是本地的(0,0).
问:我怎么能这样做?
ps以下函数没有这样做.
widget->mapFromGlobal(QCursor::pos()).x();
QCursor::pos()).x();
event->x();
Run Code Online (Sandbox Code Playgroud) 当用户将鼠标移到a上时,我想显示一个提示TDbStringGrid.它几乎可以工作,但提示显示高和左.
在我OnMouseMove,我收到X&Y,我认为它是abosulte屏幕corrdinates,但我可以dbGrid.MouseCoord(X, Y)用来获得DB网格中的一个点.
当我使用时显示我的提示时Application.ActivateHint(),它被放置在高处和左侧.
知道我做错了什么吗?
javascript ×2
jquery ×2
3d ×1
android ×1
c# ×1
c++ ×1
coordinates ×1
delphi ×1
firebug ×1
firefox ×1
hint ×1
html ×1
java ×1
mouse ×1
mouseevent ×1
point ×1
projection ×1
qt ×1
scrollable ×1
tdbgrid ×1
three.js ×1
widget ×1
wpf ×1