标签: transformation

如何在Javascript中将Epoch中的日期转换为"Ymd H:i:s"?

如何在纪元中转换以下日期:

1293683278

以下可读日期:

2010-06-23 09:57:58

用Javascript?

谢谢!

javascript transformation date epoch date-conversion

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

Imagick:用面具构图

我尝试重新创建一个脚本,使用ImageMagick命令"转换"来组成图像.但我想在PHP中使用Imagick(版本6.6.2-10)做同样的事情.

命令如下:

convert A1.mpc A3.mpc A4.mpc -channel rgba -alpha on -virtual-pixel background -background none -define compose:args=312x26.6776 -compose displace -composite out.mpc
Run Code Online (Sandbox Code Playgroud)

我发现参数代表以下内容:

convert  {background} {overlay} [{mask}] [-compose {method}] -composite {result}
Run Code Online (Sandbox Code Playgroud)

PHP Imagick给了我一个compose方法,但是没有mask参数:http://www.php.net/manual/en/imagick.compositeimage.php

我发现了另一个问题并尝试了这个(但不会产生相同的图像):

// load images
$a1 = new Imagick('a1.png');
$a3 = new Imagick('a3.png');
$a4 = new Imagick('a4.png');

// mask the overlay
$a1->compositeImage($a4, Imagick::COMPOSITE_DSTIN, 0, 0, Imagick::CHANNEL_ALPHA);

// compose overlay to background
$a1->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_BACKGROUND);
$a1->setImageBackgroundColor(new ImagickPixel('none'));
$a1->setOption('compose:args', '312x26.6776');
$a1->compositeImage($a3, Imagick::COMPOSITE_DISPLACE, 0, 0);
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:这是使用蒙版构图的正确方法吗?或者这里有什么问题?

为了帮助可视化我想要做的事情,这里有一些输入图像:

输入图像a1(背景):

A1

输入图像a3(叠加):

A3

输入图像a4(掩码):

A4

我想要的结果是: …

php transformation mask composite imagick

16
推荐指数
1
解决办法
1943
查看次数

矩阵变换的Opengl阶

假设我有一个蓝色的3D盒子(顶部是红色的).

  1. 现在我调用glScalef(1,10,1).
  2. 然后我调用glRotatef(90,0,1,0).
  3. 然后我渲染立方体.

我期望看到红色面朝向屏幕(沿着模型的Y轴).

但我现在看到的是:红色面朝向屏幕(如预期的那样).但拉伸发生在视图空间的Y轴上(而不是模型).

我知道如果我沿着Z轴设置比例,那么我将得到正确的结果.但我的困惑是,我认为在Y轴上放大,然后旋转盒子,会给我正确的结果.

我错过了什么?

opengl transformation matrix

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

如何将List <T>转换为DataSet?

给定一个对象列表,我需要将其转换为数据集,其中列表中的每个项目由一行表示,每个属性都是行中的一列.然后将此DataSet传递给Aspose.Cells函数,以便将Excel文档创建为报表.

说我有以下内容:

public class Record
{
   public int ID { get; set; }
   public bool Status { get; set; }
   public string Message { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

给定List记录,如何将其转换为DataSet,如下所示:

ID Status Message
1  true   "message" 
2  false  "message2" 
3  true   "message3" 
...
Run Code Online (Sandbox Code Playgroud)

目前我能想到的唯一一件事如下:

DataSet ds = new DataSet
ds.Tables.Add();
ds.Tables[0].Add("ID", typeof(int));    
ds.Tables[0].Add("Status", typeof(bool));
ds.Tables[0].Add("Message", typeof(string));

foreach(Record record in records)
{
    ds.Tables[0].Rows.Add(record.ID, record.Status, record.Message);
}
Run Code Online (Sandbox Code Playgroud)

但这种方式让我觉得必须有一个更好的方法,因为至少如果将新属性添加到R​​ecord中,那么它们将不会显示在DataSet中......但同时它允许我控制每个属性被添加到行中.

有谁知道更好的方法吗?

c# transformation list dataset

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

如何从旋转角度计算OpenCV的透视变换?

我想从旋转角度和到物体的距离开始计算透视变换(warpPerspective函数的矩阵).

怎么做?

我在OE上找到了代码.示例程序如下:

#include <opencv2/objdetect/objdetect.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

#include <iostream>
#include <math.h>

using namespace std;
using namespace cv;

Mat frame;

int alpha_int;
int dist_int;
int f_int;

double w;
double h; 
double alpha; 
double dist; 
double f;

void redraw() {

    alpha = (double)alpha_int/1000.;
    //dist = 1./(dist_int+1);
    //dist = dist_int+1;
    dist = dist_int-50;
    f = f_int+1;

    cout << "alpha = " << alpha << endl;
    cout << "dist = " << dist << endl;
    cout << "f = " << f …
Run Code Online (Sandbox Code Playgroud)

c++ math opencv transformation perspectivecamera

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

是否有描述平面文件的标准格式?

是否有标准或开放格式可用于描述平面文件的格式化.我公司集成了许多不同的客户文件格式.使用XML文件,可以轻松获取或创建XSD来描述XML文件格式.我正在寻找类似于描述平面文件格式(固定宽度,分隔等)的东西.Stylus Studio使用专有的.conv格式来执行此操作.可以在运行时使用该.conv格式将任意平面文件转换为XML文件.我只是想知道是否有更多的开放或基于标准的方法来做同样的事情.

我正在寻找一种描述各种平面文件格式的方法,无论它们是固定宽度还是分隔,因此CSV不是这个问题的答案.

transformation flat-file delimited-text

14
推荐指数
1
解决办法
3609
查看次数

当输入XML和转换XSL是字符串时,如何使用XslCompiledTransform.如何将转换结果作为字符串获取?

我有一个字符串inputXMLString,第二个包含名为transformXSLString的变换XSL.它们都是正确格式化的xml.

如何在C#中使用XslCompiledTransform执行转换,以便将结果也作为字符串,让我们说resultXMLString?

xslt transformation xslcompiledtransform

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

用CALayer画一条线

我正在尝试使用CALayer在两点之间划一条线.这是我的代码:

//positions a CALayer to be a line between a parent node and its subnodes.

-(void)makeLineLayer:(CALayer *)layer lineFromPointA:(CGPoint)pointA toPointB:(CGPoint)pointB{
    NSLog([NSString stringWithFormat:@"Coordinates: \n Ax: %f Ay: %f Bx: %f By: %f", pointA.x,pointA.y,pointB.x,pointB.y]);

    //find the length of the line:
    CGFloat length = sqrt((pointA.x - pointB.x) * (pointA.x - pointB.x) + (pointA.y -     pointB.y) * (pointA.y - pointB.y));
    layer.frame = CGRectMake(0, 0, 1, length);

    //calculate and set the layer's center:
    CGPoint center = CGPointMake((pointA.x+pointB.x)/2, (pointA.y+pointB.y)/2);
    layer.position = center;

    //calculate the angle of the …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch transformation objective-c calayer quartz-core

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

在圆圈周围移动阴影

我有一个每10秒绕一圈旋转的圆圈.我正在尝试投射一个朝向轨道原点(光源)倾斜的阴影,同时还要考虑相机角度.

阴影适用于某些角度,但随着相机越来越倾斜或更多自上而下,它开始看起来不那么准确,我不知道如何纠正它 - 这似乎是一个复杂的数学问题,我正在努力弄清楚怎么解决.

这是动画:http://jsfiddle.net/8y2bm88w/

我为阴影绘制代码:

ctx.beginPath();

//rotate shadow with the planet
ctx.translate(originX + obj[i].x, originY + obj[i].y);
ctx.rotate(obj[i].angle); //rotate around origin
ctx.translate(-(originX + obj[i].x), -(originY + obj[i].y));


var offsetX = -(10 * Math.sin(obj[0].angle)); //i feel this is the issue
var offsetY = 0; //this too

ctx.rect(originX + obj[i].x + offsetX, originY + obj[i].y + offsetY - 10, 20, 20);
ctx.fillStyle = 'rgba(213,0,0,0.9)'; //red shadow - easier to see
ctx.fill();
Run Code Online (Sandbox Code Playgroud)

代码通过JSFiddle更有意义,因为它将代码放入更多上下文中.

所以我认为这与数学offsetXoffsetY变量有关,因为用户改变了摄像机角度,偏移量需要适应和改变阴影移动的方式.但是,这真的让人困惑如何解决.

javascript math transformation

14
推荐指数
1
解决办法
186
查看次数

用于编写文本的"撤消"画布转换

使用画布应用变换时,结果文本(显然)也会被转换.有没有办法阻止影响文本的某些转换,如反射?

例如,我设置了一个全局变换矩阵,因此Y轴指向上方,X轴指向右侧,(0, 0)点位于屏幕的中心(您对数学坐标系的期望).

但是,这也使文本颠倒了.

const size = 200;

const canvas = document.getElementsByTagName('canvas')[0]
canvas.width = canvas.height = size;
const ctx = canvas.getContext('2d');

ctx.setTransform(1, 0, 0, -1, size / 2, size / 2);

const triangle = [
  {x: -70, y: -70, label: 'A'},
  {x:  70, y: -70, label: 'B'},
  {x:   0, y:  70, label: 'C'},
];

// draw lines  
ctx.beginPath();
ctx.strokeStyle = 'black';
ctx.moveTo(triangle[2].x, triangle[2].y);
triangle.forEach(v => ctx.lineTo(v.x, v.y));
ctx.stroke();
ctx.closePath();
  
// draw labels
ctx.textAlign = 'center';
ctx.font = '24px …
Run Code Online (Sandbox Code Playgroud)

javascript canvas transformation

14
推荐指数
2
解决办法
555
查看次数