C++博客 联系 聚合 管理  

Blog Stats

随笔档案

好友圈

脚踏实地

心 勿噪

2017年1月19日 #

     摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><html><head><title>矩阵计算器 (1.0)</title><meta charset="utf-8">&l...  阅读全文
posted @ 2017-01-19 23:36 LSH 阅读(9) | 评论 (0)编辑 收藏

2016年12月16日 #

c/c++
//>this is a Quine program implement by c language.
//>reference http://www.madore.org/~david/computers/quine.html
#include <stdio.h>
int main(void){
  char n='\n'; char g='\\'; char q='"'; char s=';';
  char*s1="//>this is a Quine program implement by c language.%c//>reference http://www.madore.org/~david/computers/quine.html%c#include <stdio.h>%cint main(void){%c  char n='%cn'; char g='%c%c'; char q='%c'; char s=';';%c  char*s1=%c%s%c;%c  printf(s1,n,n,n,n,g,g,g,q,n,q,s1,q,n,s,n,s,n)%c%c  return 0%c%c}";
  printf(s1,n,n,n,n,g,g,g,q,n,q,s1,q,n,s,n,s,n);
  return 0;
}
javascript
var c1='"'; var c2='\n'; var c3='\\'; var c4=';';
var s1="var c1='%c1'; var c2='%c3n'; var c3='%c3%c3'; var c4=';';%c2var s1=%c1%s1%c1%c4%c2console.log((((((((((s1.replace('%c1', c1)).replace('%c1', c1)).replace('%c1', c1)).replace('%c2', c2)).replace('%c2', c2)).replace('%c3', c3)).replace('%c3', c3)).replace('%c3', c3)).replace('%c4', c4)).replace('%s1', s1))";
console.log((((((((((s1.replace('%c1', c1)).replace('%c1', c1)).replace('%c1', c1)).replace('%c2', c2)).replace('%c2', c2)).replace('%c3', c3)).replace('%c3', c3)).replace('%c3', c3)).replace('%c4', c4)).replace('%s1', s1))
posted @ 2016-12-16 16:44 LSH 阅读(6) | 评论 (0)编辑 收藏

2016年10月2日 #

<script type="text/javascript">
 
        void function(global)
        {
            var mapping = {}, cache = {};
            global.define = function(id, func){
                mapping[id] = func;
            };
            
            global.require = function(id){
                if(cache[id])
                    return cache[id];
                else
                    return cache[id] = mapping[id]({});
            };
        }(this);
        
        define("moduleA", function(exports)
        {
            function ClassA(){
            }
            
            ClassA.prototype.print = function(){
                alert("moduleA.ClassA")
            }
            
            exports.New = function(){
                return new ClassA();
            }
        
            return exports;
            
        });
        
        define("moduleB", function(exports)
        {
            function ClassB(){
            }
        
            ClassB.prototype.print = function(){
                alert("moduleB.ClassB")
            }
            
            exports.New = function(){
                return new ClassB();
            }
            
            return exports;
        });
        
        define("moduleC", function(exports)
        {
            function ClassC(){
            }
        
            ClassC.prototype.print = function(){
                var classA = require("moduleA").New();
                classA.print();
                    
                var classB = require("moduleB").New();
                classB.print();
                    
                alert("moduleC.ClassC")
            }
            
            exports.New = function(){
                return new ClassC();
            }
            
            return exports;
        });
        
        var classC = require("moduleC").New();
        classC.print();
        
      </script>
posted @ 2016-10-02 20:33 LSH 阅读(13) | 评论 (0)编辑 收藏

2016年9月19日 #

@echo off
:Main
setlocal EnableDelayedExpansion
call :ShowInputIP
call :CheckIP
if %errorlevel% == 1 (
    call :TrackIP !IP! 1
)
setlocal DisableDelayedExpansion
goto :Main
::---------------------------------------------------------------
:TrackIP
ping %1 -n 2 -i %2 >rs.txt
set /a c=%2+1
if %c% geq 65 (
    echo 超出TTL限制[65]
    ping %1 -n 1
    goto :eof
)
for /f "tokens=1-5* delims= " %%i in (rs.txt) do (
    if "%%i" == "来自" (
        echo    追踪到IP[%%j] TTL=%2
        if %%j == !IP! (
            echo 追踪完成!!! 
        ) else (
            call :TrackIP %1 %c%
        )
        goto :eof
    ) else (
        if "%%i" == "请求超时。" ( 
            echo 跳跃TTL  [TTL=%2%] 
            call :TrackIP %1 %c% 
            goto :eof
        )
    )
)
goto :eof
::---------------------------------------------------------------
:ShowInputIP
echo 请输入要跟踪 ip/域名 地址:
set /p IP=
goto :eof
::---------------------------------------------------------------
:CheckIP
ping %IP% -n 1 >temp.txt
set context=
for /f "tokens=1-5* delims= " %%i in (temp.txt) do (
    if "%%m" == "具有" (
        set context=%%l
        set IP=!context:~1,-1!
        echo 解析域名 [%IP%] → IP [!IP!]
        goto :CheckEnd
    )
)
:CheckEnd
del temp.txt
exit /b 1
posted @ 2016-09-19 03:07 LSH 阅读(6) | 评论 (0)编辑 收藏

2016年9月4日 #

// test less and equal zero
// x小于,等于0返回0,x大于0返回1
// if x <= 0 return 0 and x > 0 return 1.
float LQZ(x){
   return max(0, sign(x));
   // return ceil(clamp(0.,1.,x));
}

// if x <= 0 return a and x > 0 return b
// x小于,等于0返回a,x大于0返回b
float v = mix(a, b, LQZ(x));  

// if x is odd number (0~1,2~3,4~5,6~7) return a else return b
// 奇数段(0~1,2~3,4~5,...)返回a,偶数段(1~2,3~4)返回b
float v = mix(a, b, LQZ(mod(x,2.0) - 1.0));
posted @ 2016-09-04 14:32 LSH| 编辑 收藏

2015年10月24日 #

float4x4 LookAtMatrix(float3 eyePosition, float3 lookAt, float3 up)
{
    float3 zaxis = normalize(lookAt - eyePosition);
    float3 yaxis = normalize(up);
    float3 xaxis = normalize(cross(yaxis, zaxis));
    yaxis = normalize(cross(zaxis, xaxis));
    
    float4x4 result = float4x4(xaxis.x, yaxis.x, zaxis.x, 0.0,
                               xaxis.y, yaxis.y, zaxis.y, 0.0,
                               xaxis.z, yaxis.z, zaxis.z, 0.0,
     -dot(xaxis, eyePosition), -dot(yaxis, eyePosition), -dot(zaxis, eyePosition), 1.0);
                   
    return result;
}
#define MATH_PI_DIV_180  0.0174532925
float4x4 DxPorjMatrix(float fov_y, float aspect, float zNear, float zFar)
{
    // Left Hand
    float f_n = 1.0f / (zFar - zNear);
    float yScale = 1.0 / tan(MATH_PI_DIV_180 * (fov_y) * 0.5f);
    float xScale = yScale / aspect;
    float4x4 result = float4x4(xScale, 0.0, 0.0, 0.0,
                               0.0, yScale, 0.0, 0.0,
                               0.0, 0.0, zFar*f_n, 1.0,
                               0.0, 0.0, -zNear * zFar * f_n, 1.0);
    return result;
}

biliner 插值
posted @ 2015-10-24 10:38 LSH| 编辑 收藏

2015年8月9日 #

第二章 物理中的基础概念
在这一章中我们回顾一些物理的基础概念,这些概念关系到(relevant)运动分析(analysis)和对刚体的影响。包含质量的类型区域被归类于(classified)刚体。2.1,2.2节中的主题介绍了粒子的在absence力量下,在二维或者三维所呈现的曲线路径。这些主题与运动学(kinematics)有关.而这一节的主题介绍了物理概念里的位置,速度,加速度。很多应用为更好的处理问题来选择适合的坐标系。笛卡尔坐标系统通常很方便,但是我们还需极坐标系(polar coordinates),圆柱坐标系(cylindrical coordinates), 球坐标系(spherical coordinates)。还有单个粒子的运动学,还有粒子系统和实体系统的运动学。这些物理材质都属于物理引擎,在第六章讨论。
这一章的其他剩余部分将介绍一些标准的物理概念。一条主线是从2.3节开始介绍牛顿运动法则,讨论力的概论在2.4中,其书中具体例子涉及到重力,弹力,摩擦力。力矩和平衡也在这节出现。各种测量距在2.5节讨论,包含了线性和角度距,一阶距,这些与物体的质心,距,惯性息息相关。2.5的最后一部分展示了怎样计算质量不变的实体多边形的质心和惯性张量。在第6章中讨论的物理引擎中需要实现的东西。功和能是本章最后讨论的。在开发拉格朗日动态模型中,动能是重要的量。在处理保守力中势能也是非常重要的量,如重力就是保守力。
2.1 刚体类型
刚体的特征(characterized)是质量存在于区域中。最简单的刚体是一个质量为m的单粒子它处于位置x处。p是一个含有碰撞的有限数量的粒子所组成的粒子系统,第i个粒子的质量M i处于位置X i,l <= i <= p. 单粒子和粒子系统是粒子数目有限的松散材质的例子。一个粒子系统把各种物理量累加之和的标准样子是:
                 p
Q
       = S Qi
     total    
                i=1
Qi是一些物理量
posted @ 2015-08-09 11:29 LSH| 编辑 收藏

2015年5月19日 #

按某中心为原点的缩放公式为.
p' = o + (p - o) * s;
p 为需要变换的点.
o 为缩放中心点.
s 缩放的值. (s >= 0)
p' 为结果.
posted @ 2015-05-19 17:33 LSH 阅读(42) | 评论 (0)编辑 收藏

2015年5月5日 #

the title is all about.
posted @ 2015-05-05 16:33 LSH| 编辑 收藏

2015年1月5日 #

http://www.iquilezles.org/blog/?p=2828

I think size matters. However, unlike in real life, when programming the smaller the better. Generally. Also, the less branches the better, at least when programming for parallel systems. And also, the more compact and regular, the prettier (but this is my personal opinion only).
Related to this, in the last 6 months I have pointed out / proposed this same optimization to at least five different people. Basically, it seems most people make this same “mistake” over and over again, which is to write this horrifying thing
vec3 color = vec3(0.0);
if (theta < 1.0) {
color.r = 1.0;
color.g = theta;
}
else if (theta < 2.0) {
color.r = 2.0 - theta;
color.g = 1.0;
}
else if (theta < 3.0) {
color.g = 1.0;
color.b = theta - 2.0;
}
else if (theta < 4.0) {
color.g = 4.0 - theta;
color.b = 1.0;
}
else if (theta < 5.0) {
color.r = theta - 4.0;
color.b = 1.0;
}
else {
color.r = 1.0;
color.b = 6.0 - theta;
}
return color;
instead of this equivalent line:
vec3 color = clamp( abs(mod(theta+vec3(0.,4.,2.),6.)-3.)-1., 0., 1. );
posted @ 2015-01-05 14:22 LSH 阅读(70) | 评论 (0)编辑 收藏

仅列出标题  下一页