假设我的收藏中有以下文件:
{
"_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)
我怎样才能做到这一点?
在我的MongoDB中,我有一个学生集合,有10个记录,包含字段name
和roll
.该系列的一个记录是:
{
"_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)
我的要求是只在没有任何条件的情况下找到一个密钥.那么,该查询操作是什么.
我一直在寻找一个与我的用例相匹配的例子,却找不到一个.我正在尝试将屏幕鼠标坐标转换为考虑到相机的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?
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) 我正在编写一个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)
现在我得到它在旋转方面的工作方式,但我不太明白的是为什么它将矩阵的平移组件放在那些点积上.稍微检查一下,它似乎是根据新基础矢量投影到眼睛/摄像机位置上的一小部分来调整摄像机位置.
问题是为什么需要这样做?它完成了什么?
我知道该方法存在并记录在案,但我不知道如何获取MapCanvasProjection对象.
我正在尝试从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,但这似乎重新发明了轮子.
当我学习OpenGL时,我常常偶然发现所谓的眼睛空间坐标.
如果我是对的,你通常有三个矩阵.模型矩阵,视图矩阵和投影矩阵.虽然我不完全确定背后的数学是如何工作的,但我确实知道转换坐标到世界空间,视图空间和屏幕空间.
但是眼睛空间在哪里,我需要将哪些矩阵转换为眼睛空间?
给定:使用一组顶点和三角形定义的3D网格构建具有这些点的网格.
问题:找到任意平面上投影的任意旋转网格的2d轮廓.
投影很容易.挑战在于找到平面中投影三角形边缘的"船体".我需要一些关于研究这种算法的输入/指针的帮助.为简单起见,我们可以假设3D边缘直接向下投影到xy平面上.
假设我有一个如下所示的数据结构:
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) projection ×10
math ×4
3d ×3
c# ×2
geometry ×2
graphics ×2
mongodb ×2
camera ×1
coordinates ×1
google-maps ×1
java ×1
javascript ×1
keyvaluepair ×1
linq ×1
matrix ×1
opengl ×1
point ×1
three.js ×1