我正在尝试在指定的坐标处打印控制台中的字符.到目前为止,我一直在使用非常丑陋printf("\033[%d;%dH%s\n", 2, 2, "str");但我只是要问C++是否有其他方法可以做到这一点.这个问题甚至不是很难看,当我试图让自己成为一个更漂亮的功能时问题出现了:
void printToCoordinates(int x, int y, string text)
{
printf("\033[%d;%dH%s\n", x, x, text);
}
Run Code Online (Sandbox Code Playgroud)
它不起作用,即使我转向(char*).另一个问题是我必须打印出\n要刷新的页面...我只是不喜欢printf一般使用.
以相若方式使用cout,而不是printf,我认为应该有一个更近的这样的方式(最好的方式,让我轻松地写,我想在屏幕上的字符串,最好是不要求这些奇怪的符号的方式:\033[%d;%dH)
那么,你们中的任何人都有我想要的东西吗?
我需要一个将gps位置映射到x/y值的函数,如下所示:
getXYpos(GeoPoint relativeNullPoint, GeoPoint p){
deltaLatitude=p.latitude-relativeNullPoint.latitude;
deltaLongitude=p.longitude-relativeNullPoint.longitude;
...
resultX=latitude (or west to east) distance in meters from p to relativeNullPoint
resultY=longitude (or south to north) distance in meters from p to relativeNullPoint
}
Run Code Online (Sandbox Code Playgroud)
我已经看到了"两个geoPoints距离"的一些实现,但它们都只计算了空中线距离.我认为deltaLongitude可以直接转换为米,但deltaLatitude取决于经度.有谁知道如何解决这个问题?
在OpenGL中,我试图反转y轴,并设置一个特定类型的坐标系,就像Allegro一样.假设我的窗口是640x480,我希望屏幕的左上角是轴(0,0),右下角是(640,480).到目前为止,我设法获得了我想要的正确坐标系,但我不知道它是否以正确的方式完成.至于翻转y轴,我无法在不修改我当前拥有的坐标系的情况下将其反转.我不希望只有翻转1个形状的东西.我想让它在保持坐标系的同时翻转我在y轴上制作的所有未来形状.这是我到目前为止所拥有的.
初始化:
const GLdouble XSize = 640, YSize = 480;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, XSize, YSize, 0, 1, 1000);
glMatrixMode(GL_MODELVIEW);
Run Code Online (Sandbox Code Playgroud)
渲染:
float size = 30;
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0, 0, -500);
glPushMatrix();
glTranslatef(size, size, 0.0f);
glBegin(GL_TRIANGLES);
glColor3f(0.1, 0.3, 0.8);
glVertex3f( 0.0f, size, 0.0f);
glVertex3f(-size,-size, 0.0f);
glVertex3f( size,-size, 0.0f);
glEnd();
glPopMatrix();
Run Code Online (Sandbox Code Playgroud)
编辑:
我想出了添加glScalef(1,-1,1); 将翻转我的形状,但我必须将它包含在我的形状的glPushMatrix()中,我不知道这是否是正确的方法,或者它是一个hackish解决方案.
我有一个来自Inkscape,Illustrator或任何其他应用程序的SVG文件.我想形状转换为lineto,moveto,curveto格式.
我想要的是:
./Appname svgfile outfilewithpath
Run Code Online (Sandbox Code Playgroud)
我将SVG文件作为参数,然后我的应用程序将对象转换为相应的路径.
我一直在寻找到它使用两种功能的Visual Studio的C++ Windows应用程序项目SetWindowExt (...)和SetViewportExt (...).我对这两个函数的作用以及为什么它们是必要的而感到困惑.搜索这些函数,我得出了逻辑坐标和设备坐标的概念.
任何人都可以解释这两个概念的重要性吗?
假设我有以下文件(小提琴):
<svg>
<g transform="translate(50,50)">
<rect width="20" height="20" style="fill:black;">
</g>
</svg>
Run Code Online (Sandbox Code Playgroud)
假设我不知道它在一个组中,我如何得到rect元素的全局坐标?
我的问题很简单!如何将点xyz坐标(都属于单个平面)转换为仅xy坐标.我找不到任何R功能或R解决方案.

来源数据:
# cube with plain
library(scatterplot3d)
my.plain <- data.frame(ID = c("A","B","C","D","E","F","G","H"),
x = c(1,1,1,2,2,2,3,3),
y = c(1,1,1,2,2,2,3,3),
z = c(1,2,3,1,2,3,1,2))
scatterplot3d(my.plain$x, my.plain$y, my.plain$z,
xlim = c(0,3), ylim = c(0,3), zlim = c(0,3))
Run Code Online (Sandbox Code Playgroud)
如何获得点数据帧,其中A点为[0,0],而A和D之间的距离为sqrt(2)?
一个常见问题,但我仍然需要帮助.当有人在画布中点击时,我正试图获取并存储鼠标坐标.
我的HTML
<canvas id="puppyCanvas" width="500" height="500" style="border:2px solid black" onclick = "storeGuess(event)"></canvas>
Run Code Online (Sandbox Code Playgroud)
和我的javascript
//setup canvas
var canvasSetup = document.getElementById("puppyCanvas");
var ctx = canvasSetup.getContext("2d");
guessX = 0;//stores user's click on canvas
guessY = 0;//stores user's click on canvas
function storeGuess(event){
var x = event.clientX - ctx.canvas.offsetLeft;
var y = event.clientY - ctx.canvas.offsetTop;
/*guessX = x;
guessY = y;*/
console.log("x coords:" + x + ", y coords" + y);
Run Code Online (Sandbox Code Playgroud)
我已经阅读了很多论坛,w3schools和视频.我已经接近搞清楚,但我错过了一些东西.如果删除ctx.canvas.offsetLeft和ctx.canvas.offsetTop,我可以获取页面的坐标.但我需要以某种方式合并这些以获取画布的坐标,然后存储到变量guessX和guessY中.
我正在编写一个能够缩放和平移图像的Android(Xamarin)应用程序.用户还可以单击图像上的位置.我需要图像上的那些坐标供以后使用.
以下代码是缩放和平移图像:
protected override void OnDraw(Canvas canvas)
{
base.OnDraw(canvas);
_maxX = canvas.Width;
_maxY = canvas.Height;
canvas.Translate(_posX, _posY);
if (_scaleDetector.IsInProgress)
canvas.Scale(_scaleFactor, _scaleFactor, _scaleDetector.FocusX, _scaleDetector.FocusY);
else
canvas.Scale(_scaleFactor, _scaleFactor, _lastGestureX, _lastGestureY);
}
Run Code Online (Sandbox Code Playgroud)
到目前为止这么好,现在我有一些MotionEvent使用,这是一个LongPressListener.我编写了以下代码来将坐标从MotionEvent图像上的坐标转换为:
var actualX = e.GetX() - (_parent._posX / _parent._scaleFactor);
var actualY = e.GetY() - (_parent._posY / _parent._scaleFactor);
Run Code Online (Sandbox Code Playgroud)
e在这种情况下是图像的框架.帧保存图像(即_parent),用户可以拖动图像._parent._posX/Y发生这种情况时会发生变化 用户还可以缩放图像,即_scaleFactor.
因此,当用户点击任意位置时e,我需要将这些坐标转换为图像坐标.
这两行代码可以工作,但是当用户放大时,坐标会关闭,如附图所示:
红点代表计算的位置.如您所见,如果用户放大坐标会获得更多关闭.这个计算有什么问题?