标签: transform

glm结合旋转和平移

我有一个我首先想要旋转的物体(关于它自己的中心)然后将它转换到某个点.我有一个glm :: quat保存旋转和一个glm :: vec3,它保存了需要转换的点.

glm::vec3 position;
glm::quat orientation;
glm::mat4 modelmatrix; <-- want to combine them both in here

modelmatrix = glm::translate(glm::toMat4(orientation),position);
Run Code Online (Sandbox Code Playgroud)

然后在我的渲染功能我做..

pvm = projectionMatrix*viewMatrix*modelmatrix;
glUniformMatrix4fv(pvmMatrixUniformLocation, 1, GL_FALSE, glm::value_ptr(pvm));
Run Code Online (Sandbox Code Playgroud)

..并渲染......

不幸的是,当我应用旋转时,物体围绕原点旋转(离原点越远,轨道越大).

当我只申请该职位时,它的翻译很好.当我仅应用旋转时,它停留在原点并围绕它的中心旋转(如预期的那样).那么为什么我同时应用它们会变得奇怪呢?我错过了什么基本的东西?

opengl 3d transform glm-math

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

C++中的FFT和IFFT

我正在使用C++/C对某些数据执行前向和反向FFT,这些数据应该是激光器的脉冲输出.

我们的想法是获取输出,使用正向FFT转换到频域,对相位应用线性最佳拟合(首先展开它),然后从相位信息中减去这个最佳拟合.

然后将得到的相位和幅度转换回时域,最终目标是通过相位补偿压缩脉冲.

我试图在MATLAB中不成功地做到这一点,结果转而使用C++.前向FFT工作正常,我从C++中的数字配方中获取了基本配方,并使用函数对复杂输入进行修改,如下所示:

void fft(Complex* DataIn, Complex* DataOut, int fftSize, int InverseTransform, int fftShift)
{

        double* Data  = new double[2*fftSize+3];
        Data[0] == 0.0;


        for(int i=0; i<fftSize; i++)
        {
                Data[i*2+1]  = real(DataIn[i]);
                Data[i*2+2]  = imag(DataIn[i]);
        }

        fft_basic(Data, fftSize, InverseTransform);

        for(int i=0; i<fftSize; i++)
        {
                DataOut[i] = Complex(Data[2*i+1], Data[2*i+2]);
        }

        //Swap the fft halfes
        if(fftShift==1)
        {
                Complex* temp = new Complex[fftSize];
                for(int i=0; i<fftSize/2; i++)
                {
                        temp[i+fftSize/2] = DataOut[i];
                }
                for(int i=fftSize/2; i<fftSize; i++)
                {
                        temp[i-fftSize/2] = DataOut[i];
                }
                for(int i=0; …
Run Code Online (Sandbox Code Playgroud)

c++ fft transform ifft

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

如何在另一个函数中使用calc()

是否可以calc()在CSS函数内部使用transformtranslate?我似乎无法让它工作.这是一个演示,所以你们可以玩:

http://jsfiddle.net/qdJwY/1/

css transform css3 css-calc

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

接近CSS变换规模的极限

对于我的项目areallybigpage.com(*),我试图看看我们能用CSS做多远transform: scale(...).

这适用于正常大小的文本:

#id1 { position: absolute; transform-origin: 0 0; transform: scale(10000); }
#id2 { position: absolute; transform-origin: 0 0; transform: scale(0.0001);}
Run Code Online (Sandbox Code Playgroud)
<div id="id2"><div id="id1">Bonjour</div></div>   
Run Code Online (Sandbox Code Playgroud)

但这似乎太多了,不再显示任何东西(测试Firefox 32.0/Win7,笔记本电脑/少数硬件加速):

#id1 { position: absolute; transform-origin: 0 0; transform: scale(100000); }
#id2 { position: absolute; transform-origin: 0 0; transform: scale(0.00001);}
Run Code Online (Sandbox Code Playgroud)
<div id="id2"><div id="id1">Bonjour</div></div>   
Run Code Online (Sandbox Code Playgroud)

CSS3的规模是否有限制transform: scale(...)

我们如何进一步推动这一限制?


(*):由于此问题中描述的限制,我目前不在此页面上使用 transform: scale(...),但我想在本网站的未来版本中使用它.

偏离主题:如果你缩放得足够远PgUp,你很容易陷入1.79e+308浮动限制问题.(但这是另一个问题)

css transform css3 css-transforms

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

CSS3转换导致文本在Safari和Firefox Mac Yosemite中闪烁

我在Safari和Firefox(Mac/Yosemite)上遇到这个奇怪的问题,当鼠标悬停在转换元素上时,几乎所有文本都会闪烁.

示例gif :( Firefox,Yosemite)

在此输入图像描述

.usp {
   //USP has an icon that is defined below
    opacity: .4;
    @include transition(all .3s ease-in-out);


    &:hover { 
        opacity: 1;
        @include transition(all .3s ease-in-out);


        .icon {
            @include transform(scale(1.1));
            @include transition(all 1.7s ease-in-out);
        }
    } // :hover
} 

.usp .icon {
    display: block;
    height: 75px;
    width: 75px;
    // Insert background-image sprite (removed from this example)
    @include transition(all .3s ease-in-out); 
    @include transform(scale(1.0));
}
Run Code Online (Sandbox Code Playgroud)

我尝试过以下的事情:

将这些样式的每种可能组合添加到正文,转换元素和/或其父级

-webkit-transform-style:preserve-3d;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
 backface-visibility: hidden;
-webkit-filter: opacity(.9999);
-webkit-font-smoothing: antialiased; …
Run Code Online (Sandbox Code Playgroud)

css transform css3 css-transitions css-transforms

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

Pandas transform()vs apply()

我不明白为什么applytransform在同一数据帧上调用时返回不同的dtypes.我之前解释这两个函数的方式是" apply折叠数据,transform完全相同apply但保留原始索引并且不会崩溃".考虑以下.

df = pd.DataFrame({'id': [1,1,1,2,2,2,2,3,3,4],
                   'cat': [1,1,0,0,1,0,0,0,0,1]})
Run Code Online (Sandbox Code Playgroud)

让我们识别那些idcat列中具有非零条目的s .

>>> df.groupby('id')['cat'].apply(lambda x: (x == 1).any())
id
1     True
2     True
3    False
4     True
Name: cat, dtype: bool
Run Code Online (Sandbox Code Playgroud)

大.但是,如果我们想创建一个指标列,我们可以执行以下操作.

>>> df.groupby('id')['cat'].transform(lambda x: (x == 1).any())
0    1
1    1
2    1
3    1
4    1
5    1
6    1
7    0
8    0
9    1
Name: cat, dtype: int64
Run Code Online (Sandbox Code Playgroud)

我不明白为什么dtype现在int64而不是any()函数返回的布尔值.

当我将原始数据框更改为包含一些布尔值时(注意零保持不变),转换方法会在object …

python transform apply pandas

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

WPF:旋转后获取新坐标

参考我目前正在构建的这个编程游戏.

alt text http://img12.imageshack.us/img12/2089/shapetransformationf.jpg

要在WPF中翻译Canvas,我使用两个表单:( TranslateTransform移动它)和RotateTransform(旋转它)[ 相同的子节点 TransformationGroup ]

我可以很容易地获得画布的左上角x,y坐标,当它没有旋转(或旋转90度,因为它将是相同的),但我面临的问题是左上角(和其他3点)坐标.

这是因为当RotateTransform应用a 时,TranslateTransform's XY属性不会改变(因此仍然表明正方形的左上角就像点状正方形(来自图像)

Canvas正在从它的中心旋转,因此它就是它的起源.

那么如何在旋转后获得4个点的"新"x和y坐标

[UPDATE]

alt text http://img25.imageshack.us/img25/8676/shaperotationaltransfor.jpg

我找到了找到左上角的方法通过将旋转中的OffsetX和OffsetY添加到起始X和Y坐标,在旋转后坐标的方法(从新图像中可以看到).

但我现在无法找出其余的坐标(另外3个).

通过这种旋转的形状,我如何计算其余3个角的x和y坐标?

[编辑]

第二张图片中的点不准确和精确点.我在脑海中估计了这一点.

[更新]解决方案:

首先,我要感谢Jason S.这篇冗长且非常翔实的文章,其中他描述了整个过程背后的数学; 通过阅读你的帖子和尝试价值观,我当然学到了很多东西.

但我现在已经找到了一个代码片段(感谢EugeneZ的提及TransformBounds),它完全符合我的要求:

public Rect GetBounds(FrameworkElement of, FrameworkElement from)
{
    // Might throw an exception if of and from are not in the same visual tree
    GeneralTransform transform = …
Run Code Online (Sandbox Code Playgroud)

math wpf transform

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

如何制作像iPhone文件夹这样的东西?

我想知道是否有一种方法可以将我的视图转换为类似iPhone文件夹的方式.换句话说,我希望我的视图在中间的某处分开,并在其下方显示一个视图.这可能吗?

替代文字

编辑: 根据下面的建议,我可以通过这样做截取我的应用程序:

UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)

但是,不知道该怎么做.

编辑:2 我已经想出如何在我的视图中添加一些阴影,这是我已经实现的(裁剪以显示相关部分):

替代文字

编辑:3

http://github.com/jwilling/JWFolders

iphone directory cocoa-touch transform objective-c

13
推荐指数
1
解决办法
3547
查看次数

与背景图象的CSS三角

尊敬的stackoverflowers,

如何使用背景图案创建三角形元素?

例如,我需要像这样的div:

在此输入图像描述

但我的状态是这样的:

在此输入图像描述

所有带有三角形元素的例子都使用了边框,这些边框不能使用img ....

这是我的小节课,需要colarrowrow:

<div class="subsection"><span>Ryan Gosling, Mr Landlord</span></div>

.subsection {
  .box-shadow (0, -1px, 1px, 0, rgba(0, 0, 0, 0.3));
  background: url('/assets/pattern-lorem.png'); // The inner part of the slider have the pattern
  display: block;
  clear: both;
  float: left;
  width: 100%;
  padding-top: 15px;
  padding-bottom: 15px;
  display: none;
}
.subsection {
    position:relative;
}
.subsection:before {
    content:'';
    position:absolute;
    top:0;
    left:0;
    height:20px;
    width:0;
    border-left:20px solid white;
    border-bottom:16px solid transparent;
}
.subsection:after {
    content:'';
    position:absolute;
    top:36px;
    left:0;
    bottom:0;
    width:0;
    border-left:20px solid white; …
Run Code Online (Sandbox Code Playgroud)

html css transform css3 css-shapes

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

使用CSS3变换比例缩放点

即使以下代码片段看起来很短,我也会在几天内挣扎(对我感到羞耻!)找到一种方法来缩放仅使用CSS3 点击的点transform.它现在有效:

    var current = {x: 0, y: 0, zoom: 1}, c = document.getElementById('container');
    window.onclick = function(e) {
      wx = current.x + e.clientX / current.zoom;
      wy = current.y + e.clientY / current.zoom;
      var coef = e.ctrlKey ? 0.5 : 2;
      current.zoom *= coef;    
      current.x = wx - e.clientX / current.zoom; 
      current.y = wy - e.clientY / current.zoom; 
      c.style.transform = 'scale(' + current.zoom +') translate(' + (-current.x) + 'px,' + (-current.y) + 'px)';
    };
Run Code Online (Sandbox Code Playgroud)
    html, body { …
Run Code Online (Sandbox Code Playgroud)

css transition transform css3 css-transitions

13
推荐指数
1
解决办法
9039
查看次数