标签: projection

仅检索MongoDB集合中对象数组中的查询元素

假设我的收藏中有以下文件:

{  
   "_id":ObjectId("562e7c594c12942f08fe4192"),
   "shapes":[  
      {  
         "shape":"square",
         "color":"blue"
      },
      {  
         "shape":"circle",
         "color":"red"
      }
   ]
},
{  
   "_id":ObjectId("562e7c594c12942f08fe4193"),
   "shapes":[  
      {  
         "shape":"square",
         "color":"black"
      },
      {  
         "shape":"circle",
         "color":"green"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

查询:

db.test.find({"shapes.color": "red"}, {"shapes.color": 1})
Run Code Online (Sandbox Code Playgroud)

要么

db.test.find({shapes: {"$elemMatch": {color: "red"}}}, {"shapes.color": 1})
Run Code Online (Sandbox Code Playgroud)

返回匹配的文档(文档1),但始终包含所有数组项shapes:

{ "shapes": 
  [
    {"shape": "square", "color": "blue"},
    {"shape": "circle", "color": "red"}
  ] 
}
Run Code Online (Sandbox Code Playgroud)

但是,我想仅使用包含以下内容的数组来获取文档(文档1)color=red:

{ "shapes": 
  [
    {"shape": "circle", "color": "red"}
  ] 
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

projection mongodb mongodb-query aggregation-framework

356
推荐指数
11
解决办法
26万
查看次数

如何为MongoDB集合中的所有文档选择单个字段?

在我的MongoDB中,我有一个学生集合,有10个记录,包含字段nameroll.该系列的一个记录是:

{
    "_id" : ObjectId("53d9feff55d6b4dd1171dd9e"),
    "name" : "Swati",
    "roll" : "80",
}
Run Code Online (Sandbox Code Playgroud)

我想只检索roll集合中所有10条记录的字段,就像我们在传统数据库中一样,使用:

SELECT roll FROM student
Run Code Online (Sandbox Code Playgroud)

我浏览了很多博客,但所有博客都产生了一个查询,其中必须有WHERE条款,例如:

db.students.find({ "roll": { $gt: 70 })
Run Code Online (Sandbox Code Playgroud)

该查询相当于:

SELECT * FROM student WHERE roll > 70
Run Code Online (Sandbox Code Playgroud)

我的要求是只在没有任何条件的情况下找到一个密钥.那么,该查询操作是什么.

projection mongodb

191
推荐指数
9
解决办法
24万
查看次数

鼠标/画布X,Y到Three.js世界X,Y,Z

我一直在寻找一个与我的用例相匹配的例子,却找不到一个.我正在尝试将屏幕鼠标坐标转换为考虑到相机的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?

point projection mouse-coordinates three.js

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

以编程方式纠正鱼眼失真

BOUNTY STATUS UPDATE:

我发现了如何绘制线性镜头,从destination坐标到source坐标.

你如何计算从中心到鱼眼到直线的径向距离?

  • 1).我实际上很难逆转它,并将源坐标映射到目标坐标.在我发布的转换函数风格的代码中有什么反转?

  • 2).我也看到我的失真在一些镜头上是不完美的 - 大概是那些不是严格线性的镜头.这些镜头的源和目标坐标是等价的?再说一遍,代码不仅仅是数学公式,请...


最初提出的问题:

我有一些观点描述用鱼眼镜头拍摄的照片中的位置.

我想将这些点转换为直线坐标.我想不要失真的形象.

我发现这个描述的如何生成鱼眼效果,但不知道如何扭转这种局面.

还有一篇博客文章描述了如何使用工具来完成它; 这些照片来自:

(1):SOURCE 原始照片链接

输入:修复鱼眼失真的原始图像.

(2):DESTINATION 原始照片链接

输出:校正图像(技术上也有透视校正,但这是一个单独的步骤).

你如何计算从中心到鱼眼到直线的径向距离?

我的函数存根看起来像这样:

Point correct_fisheye(const Point& p,const Size& img) {
    // to polar
    const Point centre = {img.width/2,img.height/2};
    const Point rel = {p.x-centre.x,p.y-centre.y};
    const double theta = atan2(rel.y,rel.x);
    double R = sqrt((rel.x*rel.x)+(rel.y*rel.y));
    // fisheye undistortion in here please
    //... change R ...
    // …
Run Code Online (Sandbox Code Playgroud)

math graphics geometry projection

49
推荐指数
2
解决办法
5万
查看次数

计算LookAt矩阵

我正在编写一个3d引擎,我遇到了DirectX文档中描述的LookAt算法:

zaxis = normal(At - Eye)
xaxis = normal(cross(Up, zaxis))
yaxis = cross(zaxis, xaxis)

 xaxis.x           yaxis.x           zaxis.x          0
 xaxis.y           yaxis.y           zaxis.y          0
 xaxis.z           yaxis.z           zaxis.z          0
-dot(xaxis, eye)  -dot(yaxis, eye)  -dot(zaxis, eye)  l
Run Code Online (Sandbox Code Playgroud)

现在我得到它在旋转方面的工作方式,但我不太明白的是为什么它将矩阵的平移组件放在那些点积上.稍微检查一下,它似乎是根据新基础矢量投影到眼睛/摄像机位置上的一小部分来调整摄像机位置.

问题是为什么需要这样做?它完成了什么?

math 3d graphics projection

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

如何在Google Maps API V3中调用fromLatLngToDivPixel?

我知道该方法存在并记录在案,但我不知道如何获取MapCanvasProjection对象.

javascript google-maps projection google-maps-api-3

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

通过EF/Linq投射到KeyValuePair

我正在尝试从EF/Linq查询加载KeyValuePairs列表,如下所示:

return (from o in context.myTable 
select new KeyValuePair<int, string>(o.columnA, o.columnB)).ToList();
Run Code Online (Sandbox Code Playgroud)

我的问题是,这会导致错误

"LINQ to Entities中仅支持无参数构造函数和初始值设定项."

有一个简单的方法吗?我知道我可以为此创建一个自定义类而不是使用KeyValuePair,但这似乎重新发明了轮子.

c# linq entity-framework projection keyvaluepair

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

眼睛空间坐标究竟是什么?

当我学习OpenGL时,我常常偶然发现所谓的眼睛空间坐标.

如果我是对的,你通常有三个矩阵.模型矩阵,视图矩阵和投影矩阵.虽然我不完全确定背后的数学是如何工作的,但我确实知道转换坐标到世界空间,视图空间和屏幕空间.

但是眼睛空间在哪里,我需要将哪些矩阵转换为眼睛空间?

opengl camera projection matrix coordinates

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

投影3D网格的2D轮廓算法

给定:使用一组顶点和三角形定义的3D网格构建具有这些点的网格.

问题:找到任意平面上投影的任意旋转网格的2d轮廓.

投影很容易.挑战在于找到平面中投影三角形边缘的"船体".我需要一些关于研究这种算法的输入/指针的帮助.为简单起见,我们可以假设3D边缘直接向下投影到xy平面上.

math 3d geometry projection

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

基本渲染3D透视投影到2D屏幕上的相机(没有opengl)

假设我有一个如下所示的数据结构:

Camera {
   double x, y, z

   /** ideally the camera angle is positioned to aim at the 0,0,0 point */
   double angleX, angleY, angleZ;
}

SomePointIn3DSpace {
   double x, y, z
}

ScreenData {
   /** Convert from some point 3d space to 2d space, end up with x, y */
   int x_screenPositionOfPt, y_screenPositionOfPt

   double zFar = 100;

   int width=640, height=480
}
Run Code Online (Sandbox Code Playgroud)

...

没有屏幕剪辑或其他任何东西,我如何在空间中给出一些3d点的情况下计算某个点的屏幕x,y位置.我想将这个3d点投影到2d屏幕上.

Camera.x = 0
Camera.y = 10;
Camera.z = -10;


/** ideally, I want the camera to …
Run Code Online (Sandbox Code Playgroud)

c# java math 3d projection

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