Matlab编写程序实现一个随机运动的小球

Matlab编写程序实现一个随机运动的小球,第1张

clc,clear

%一个三维随机运动的小球

r=0.5%球的半径

%运动的范围

x1=0x2=30

y1=0y2=30

z1=0z2=30

%初始位置  随机生成

x0=rand(1)*(x2-x1-2*r)+x1

y0=rand(1)*(y2-y1-2*r)+y1

z0=rand(1)*(z2-z1-2*r)+z1

pos=[x0y0z0]

figure(1)

[x,y,z]  = ellipsoid(pos(1),pos(2),pos(3),r,r,r)

surf(x,y,z,ones(size(x))) %画出来球

n=200%随机运动的次数

p=1  %p可以用来控制每次运动距离的大小

for i=1:n

    %产生运动的方向与运动距离,用一个随机向量表示

    s=0

    while(s==0)

        direct=rand(3,1)-0.5

        dd=direct/norm(direct,2)

        dd=dd*p

        post=pos+dd

        if (post(1)>=x1+r&&post(1)<=x2-r)&&(post(2)>=y1+r&&post(2)<=y2-r)&&(post(3)>=z1+r&&post(3)<=z2-r)

            s=1

        end

    end

    pos=pos+dd

    [x,y,z]  = ellipsoid(pos(1),pos(2),pos(3),r,r,r)

    surf(x,y,z,ones(size(x))) %画出来球

    axis([x1 x2 y1 y2 z1 z2])

    pause(0.1)  %设置暂停时间

end

因为是随机运动   如果每次运动的距离设置的不大,小球基本上是在初始位置的范围内运动

Python程序开发之简单小程序实例

(11)小 游戏 -跳动的小球

一、项目功能

用户控制挡板来阻挡跳动的小球。

二、项目分析

根据项目功能自定义两个类,一个用于控制小球在窗体中的运动,一个用于接收用户按下左右键时,挡板在窗体中的运动。在控制小球的类中,我们还需要考虑当小球下降时,碰到挡板时的位置判断。

三、程序源代码

源码部分截图:

源码:

#!/usr/bin/python3.6

# -*- coding: GBK -*-

#导入相应模块

from tkinter import *

import random

import time

#自定义小球的类 Ball

class Ball:

# 初始化

def __init__(self,canvas,paddle,color):

#传递画布值

self.canvas=canvas

#传递挡板值

self.paddle=paddle

#画圆并且保存其ID

self.id=canvas.create_oval(10,10,25,25,fill=color)

self.canvas.move(self.id,245,100)

#小球的水平位置起始列表

start=[-3,-2,-1,1,2,3]

#随机化位置列表

random.shuffle(start)

self.x=start[0]

self.y=-2

self.canvas_heigh=self.canvas.winfo_height()#获取窗口高度并保存

self.canvas_width=self.canvas.winfo_width()

#根据参数值绘制小球

def draw(self):

self.canvas.move(self.id,self.x,self.y)

pos=self.canvas.coords(self.id)#返回相应ID代表的图形的当前坐标(左上角和右上角坐标)

#使得小球不会超出窗口

pad=self.canvas.coords(self.paddle.id)#获取小球挡板的坐标

if pos[1]=self.canvas_heigh or(pos[3]>=pad[1] and pos[2]>=pad[0] and pos[2]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11138617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存