pygame伪3d 地面旋转

这篇具有很好参考价值的文章主要介绍了pygame伪3d 地面旋转。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

pygame伪3d 地面旋转,pygame,3d,python文章来源地址https://www.toymoban.com/news/detail-543132.html

import cv2
import pygame
import sys
from pygame import gfxdraw
import numpy as np

(width, height) = (800, 600)
pygame.init()
screen = pygame.display.set_mode((width, height))
image = pygame.image.load("11.jpg").convert()
d3=pygame.surfarray.array3d(image)
f=250#数字大会显示更前面的图片
sc=300#数字越大视角越高
color=(255, 255, 255)
#print(len(d3[0][0]))#len(d3 )就是有多少张表 一个[0]是有多高 两个是每个表有几列 三个就是具体数
#print(d3[0][0][0])
#print(d3)
#sarray=pygame.surfarray.array3d(pygame.surface((50,50)))
sarray=pygame.surfarray.array3d(pygame.Surface((width,height)))
#sarray[:]=(255,255,0)变成黄色,替换所有为(255,255,0)

tsize=image.get_size()#图片宽高
print(tsize)
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        if event.type == pygame.MOUSEBUTTONDOWN:
            mouse = pygame.mouse.get_pos()
            '''pxarray = pygame.PixelArray(screensurf)
            pixel = pygame.Color(pxarray[mouse[0], mouse[1]])#获取像素
            print (pixel)
            print (screensurf.get_at(mouse))#颜色
            print(mouse[0], mouse[1],mouse)#点击坐标
            print(img.get_at(mouse))#颜色'''
            #pygame.Surface.set_at(screen, (140, 140), (img.get_at(mouse)))
            print(mouse[0], mouse[1], mouse)  # 点击坐标
    time=pygame.time.get_ticks()*0.01#获取时间,毫秒
    pos=np.array([time,0])
    print(pos[0],pos[1])
    angle=np.sin(time*0.3)
    sin=np.sin(angle)
    cos=np.cos(angle)
    for i in range(width):
        for j in range(int(height/2),height):
            x=(width/2)-i
            y=j+f
            z=j-(height/2)+0.01
            '''
            def huizhi(x, y, z):
            shiju = 300
            x1 = shiju * x / z
            y1 = shiju * y / z
            # p.append((x1,y1))
            return x1, y1
            '''
            rx=(x*cos-y*sin)
            ry=(x*sin+y*cos)
            px=(rx/z+pos[1])*sc
            py=(ry/z+pos[0])*sc
            '''
            px=(x/z+pos[1])*sc
            py=(y/z-pos[0])*sc#+pos是向后,-是向前
            横着走,向右
            px=(x/z+pos[0])*sc
            py=(y/z+pos[1])*sc
            '''
            fp=int(px%tsize[0]),int(py%tsize[1])#tsize【0】,【1】是图片宽高
            fc=d3[fp]
            sarray[i,j]=fc#-i让图片旋转180,-y让上方同样显示图片,达到天空的目的
    pygame.surfarray.blit_array(screen,sarray)
    pygame.display.update()


到了这里,关于pygame伪3d 地面旋转的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pygame图像变换:缩放、旋转、镜像

    pygame的transform中封装了一些基础的图像处理函数,列表如下 函数 功能 flip 镜像 scale 缩放至新的分辨率 scale_by 根据因子进行缩放 scale2x 专业图像倍增器 rotate 旋转 rotozoom 缩放并旋转 smoothscale 平滑缩放 smoothscale_by 平滑缩放至新的分辨率 chop 获取已删除内部区域的图像的副本

    2024年02月04日
    浏览(39)
  • 【Unity3D】地面网格特效

    1 前言         本文实现了地面网格特效,包含以下两种模式: 实时模式:网格线宽度和间距随相机的高度实时变化; 分段模式:将相机高度分段,网格线宽度和间距在每段中对应一个值。         本文完整资源见→Unity3D地面网格特效。  2 地面网格实现          Sc

    2024年02月16日
    浏览(40)
  • 3D激光slam:LeGO-LOAM---地面点提取方法及代码分析

    地面点提取方法 LeGO-LOAM中前端改进中很重要的一点就是充分利用地面点,本片博客主要讲解 如何进行地面点提取 如下图所示,相邻的两个scan的同一列,打在地面上,形成两个点A和B。 它们的垂直高度差为h,这个值在理想情况(雷达水平安装,地面是水平的)接近于0 水平距

    2023年04月09日
    浏览(48)
  • ROS系列——使用python的transforms3d、numpy库实现四元数、旋转矩阵、欧拉角、轴角等的相互转换

    pip3 install transforms3d 四元数模块在transforms3d.quaternions里,直接导入即可使用 2.1.1四元数转旋转矩阵 2.1.2 旋转矩阵转四元数 2.2.1 四元数转轴角 2.2.2 轴角转四元数 四元数模块在transforms3d.euler里,直接导入即可使用 3.1.1 固定轴欧拉角转四元数 3.1.2 四元数转固定轴欧拉角 3.2.1 固定

    2024年02月07日
    浏览(93)
  • pygame多图伪3d

    2024年02月13日
    浏览(31)
  • pygame单图伪3d

    2024年02月13日
    浏览(35)
  • 【CSS3】CSS3 3D 转换 ④ ( 3D 旋转 rotate3d | rotate3d 语法 | rotate3d 自定义轴旋转 | 元素旋转方向 - 左手准则 | 代码示例 )

    3D 旋转 指的是 在 三维空间坐标系 中 , 绕 X 轴 , Y 轴 , Z 轴 进行旋转 , 同时还可以绕 自定义轴 进行旋转 ; 2D 旋转只能 以 某个点为中心进行旋转 , 3D 旋转可以绕某个轴进行旋转 ; CSS3 中 3D 旋转 语法 : 绕 X 轴旋转 : 沿着 X 轴 正方向 旋转 45 度 ; 绕 Y 轴旋转 : 沿着 Y 轴 正方向

    2024年02月11日
    浏览(48)
  • css 3d旋转图片(css旋转木马)(详细教程)

    接下来开始制作旋转 老婆 图片 先准备好html骨架(后面为了挨个测试可以先把后面5个div注释掉) 预定义好css样式 效果图(所有的div叠加在了一起): 为body设置深景(相当于一个镜头,距离屏幕的距离) 为大盒子和设置旋转旋转中心+子元素3d属性: 为大盒子添加过渡样式,使

    2024年02月05日
    浏览(79)
  • 认识3D旋转变换矩阵

    前文输出了cesium的Rotation变量,一个矩阵;把这矩阵写下来看下; 0.99939     -0.034899    0    0 0.034899    0.99939      0    0    0           0         1    0    0           0         0    1 看一下3D数学的相关描述; 方位和角位移     不能用绝对坐标来描述物体的 位置

    2024年02月06日
    浏览(33)
  • 3D旋转 相册

    效果展示 代码逻辑

    2024年02月04日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包