挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)天下盾/国内/免实名/免备案CDN无视一切CC/DD攻击 找塔科夫作者TG @wuhao1954 QQ283931494 出租内核驱动读写保护,价格亲民,高品质群:530544047 →入驻S9企业发卡网各种全黑号辅助群:475351077
██【我要租此广告位】██... .
查看: 1879|回复: 3
打印 上一主题 下一主题

[悬赏求助] 收一份D3DXVec3Project算法

[复制链接]
6高级会员
610/1100

610

积分

92

主题

19

听众
已帮网友解决0 个问题
好评
-1
贡献
518
海币
77
交易币
0
跳转到指定楼层
楼主
发表于 2024-2-18 05:33:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


8海币
要求纯算法不依赖D3DXVec3Project 火山或者易语言
企鹅977189077 加我时备注g海 天价勿扰


联系我时,请说是在 挂海论坛 上看到的,谢谢!




上一篇:寻绝di潜兵2开发作者。
下一篇:高价收xf内存自m漏打检测
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:[email protected]),本站将立即改正。

11青铜长老
3236/3800

3236

积分

6

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
3230
海币
7068
交易币
0
沙发
发表于 2024-2-18 07:03:28 | 只看该作者
答应我,别当冤种了好吗
https://github.com/wine-mirror/wine/blob/90103fa07e5c23c7500c7d33e538b0610bf3c27d/dlls/d3dx9_36/math.c#L1828

[C++] 纯文本查看 复制代码
#ifdef NONAMELESSUNION
# define D3DX_U(x)  (x).u
#else
# define D3DX_U(x)  (x)
#endif

static inline D3DXMATRIX* D3DXMatrixIdentity(D3DXMATRIX *pout)
{
    if ( !pout ) return NULL;
    D3DX_U(*pout).m[0][1] = 0.0f;
    D3DX_U(*pout).m[0][2] = 0.0f;
    D3DX_U(*pout).m[0][3] = 0.0f;
    D3DX_U(*pout).m[1][0] = 0.0f;
    D3DX_U(*pout).m[1][2] = 0.0f;
    D3DX_U(*pout).m[1][3] = 0.0f;
    D3DX_U(*pout).m[2][0] = 0.0f;
    D3DX_U(*pout).m[2][1] = 0.0f;
    D3DX_U(*pout).m[2][3] = 0.0f;
    D3DX_U(*pout).m[3][0] = 0.0f;
    D3DX_U(*pout).m[3][1] = 0.0f;
    D3DX_U(*pout).m[3][2] = 0.0f;
    D3DX_U(*pout).m[0][0] = 1.0f;
    D3DX_U(*pout).m[1][1] = 1.0f;
    D3DX_U(*pout).m[2][2] = 1.0f;
    D3DX_U(*pout).m[3][3] = 1.0f;
    return pout;
}

D3DXMATRIX* WINAPI D3DXMatrixMultiply(D3DXMATRIX *pout, const D3DXMATRIX *pm1, const D3DXMATRIX *pm2)
{
    D3DXMATRIX out;
    int i,j;

    //TRACE("pout %p, pm1 %p, pm2 %p\n", pout, pm1, pm2);

    for (i=0; i<4; i++)
    {
        for (j=0; j<4; j++)
        {
            out.m[i][j] = pm1->m[i][0] * pm2->m[0][j] + pm1->m[i][1] * pm2->m[1][j] + pm1->m[i][2] * pm2->m[2][j] + pm1->m[i][3] * pm2->m[3][j];
        }
    }

    *pout = out;
    return pout;
}

D3DXVECTOR3* WINAPI D3DXVec3TransformCoord(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv, const D3DXMATRIX *pm)
{
    D3DXVECTOR3 out;
    FLOAT norm;

    //TRACE("pout %p, pv %p, pm %p\n", pout, pv, pm);

    norm = pm->m[0][3] * pv->x + pm->m[1][3] * pv->y + pm->m[2][3] *pv->z + pm->m[3][3];

    out.x = (pm->m[0][0] * pv->x + pm->m[1][0] * pv->y + pm->m[2][0] * pv->z + pm->m[3][0]) / norm;
    out.y = (pm->m[0][1] * pv->x + pm->m[1][1] * pv->y + pm->m[2][1] * pv->z + pm->m[3][1]) / norm;
    out.z = (pm->m[0][2] * pv->x + pm->m[1][2] * pv->y + pm->m[2][2] * pv->z + pm->m[3][2]) / norm;

    *pout = out;

    return pout;
}

D3DXVECTOR3* WINAPI D3DXVec3Project(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv, const D3DVIEWPORT9 *pviewport, const D3DXMATRIX *pprojection, const D3DXMATRIX *pview, const D3DXMATRIX *pworld)
{
    D3DXMATRIX m;

    //TRACE("pout %p, pv %p, pviewport %p, pprojection %p, pview %p, pworld %p\n", pout, pv, pviewport, pprojection, pview, pworld);

    D3DXMatrixIdentity(&m);
    if (pworld) D3DXMatrixMultiply(&m, &m, pworld);
    if (pview) D3DXMatrixMultiply(&m, &m, pview);
    if (pprojection) D3DXMatrixMultiply(&m, &m, pprojection);

    D3DXVec3TransformCoord(pout, pv, &m);

    if (pviewport)
    {
        pout->x = pviewport->X +  ( 1.0f + pout->x ) * pviewport->Width / 2.0f;
        pout->y = pviewport->Y +  ( 1.0f - pout->y ) * pviewport->Height / 2.0f;
        pout->z = pviewport->MinZ + pout->z * ( pviewport->MaxZ - pviewport->MinZ );
    }
    return pout;
}
回复

使用道具 举报

304

积分

3

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
301
海币
318
交易币
0
板凳
发表于 2024-2-18 09:13:48 来自手机 | 只看该作者
真的不错呢,很不错的样子
回复

使用道具 举报

4中级会员
548/600

548

积分

3

主题

4

听众
已帮网友解决0 个问题
好评
-2
贡献
545
海币
7887
交易币
0
地板
发表于 2024-2-19 12:54:27 | 只看该作者
算法很简单这是E的直接套上就能用
.版本 2

视角宽 = 窗口宽 ÷ 2
视角高 = 窗口高 ÷ 2
相机Z = ViewWorld [1] [3] × 敌人X + ViewWorld [2] [3] × 敌人Y + ViewWorld [3] [3] × 敌人Z + ViewWorld [4] [3]
' 输出调试文本 (相机Z)
.如果真 (相机Z < 0)
    返回 ()
.如果真结束
缩放比例 = 1 ÷ 相机Z
相机X = 视角宽 + (ViewWorld [1] [1] × 敌人X + ViewWorld [2] [1] × 敌人Y + ViewWorld [3] [1] × 敌人Z + ViewWorld [4] [1]) × 缩放比例 × 视角宽
相机Y = 视角高 - (ViewWorld [1] [2] × 敌人X + ViewWorld [2] [2] × 敌人Y + ViewWorld [3] [2] × (敌人Z + 26) + ViewWorld [4] [2]) × 缩放比例 × 视角高  ' 头
相机Y2 = 视角高 - (ViewWorld [1] [2] × 敌人X + ViewWorld [2] [2] × 敌人Y + ViewWorld [3] [2] × (敌人Z - 35) + ViewWorld [4] [2]) × 缩放比例 × 视角高  ' 脚
方框宽高 = 相机Y2 - 相机Y
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2024-4-28 05:49 , Processed in 0.390169 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

快速回复 返回顶部 返回列表