爱心代码 python(以烟花为背景)

完整代码


# 开发时间: 2022/11/9 23:12
import math

import random
import threading
import time
from math import sin, cos, pi, log
from tkinter import *
import re

Fireworks = []
maxFireworks = 8
CANVAS_WIDTH = 1080  # 画布的宽
CANVAS_HEIGHT = 600  # 画布的高
CANVAS_CENTER_X = CANVAS_WIDTH / 2  # 画布中心的X轴坐标
CANVAS_CENTER_Y = CANVAS_HEIGHT / 2  # 画布中心的Y轴坐标

IMAGE_ENLARGE = 12  # 放大比例
HEART_COLOR = "pink"  # 心的颜色


# 烟花类
class firework(object):
    def __init__(self, color, speed, width, height):
        # uid=uuid.uuid1()
        self.radius = random.randint(2,3)  # 粒子半径为2~3像素
        self.color = color  # 粒子颜色
        self.speed = speed  # speed是1.5-3.5秒
        self.status = 0  # 在烟花未爆炸的情况下,status=0;爆炸后,status>=1;当status>100时,烟花的生命期终止
        self.nParticle = random.randint(80, 100)  # 粒子数量
        self.center = [random.randint(0, width - 15), random.randint(0, height - 15)]  # 烟花随机中心坐标
        self.oneParticle = []  # 原始粒子坐标(100%状态时)
        self.rotTheta = random.uniform(-1, 2 * math.pi)  # 椭圆平面旋转角

        # 椭圆参数方程:x=a*cos(theta),y=b*sin(theta)
        # ellipsePara=[a,b]

        self.ellipsePara = [random.randint(30, 40), random.randint(20, 30)]
        theta = 2 * math.pi / self.nParticle
        for i in range(self.nParticle):
            t = random.uniform(-1.0 / 16, 1.0 / 16)  # 产生一个 [-1/16,1/16) 的随机数
            x, y = self.ellipsePara[0] * math.cos(theta * i + t), self.ellipsePara[1] * math.sin(
                theta * i + t)  # 椭圆参数方程
            xx, yy = x * math.cos(self.rotTheta) - y * math.sin(self.rotTheta), y * math.cos(
                self.rotTheta) + x * math.sin(self.rotTheta)  # 平面旋转方程
            self.oneParticle.append([xx, yy])

        self.curParticle = self.oneParticle[0:]  # 当前粒子坐标
        self.thread = threading.Thread(target=self.extend)  # 建立线程对象

    def extend(self):  # 粒子群状态变化函数线程
        for i in range(100):
            self.status += 1  # 更新状态标识
            self.curParticle = [[one[0] * self.status / 100, one[1] * self.status / 100] for one in
                                self.oneParticle]  # 更新粒子群坐标
            time.sleep(self.speed / 50)

    def explode(self):
        self.thread.setDaemon(True)  # 把现程设为守护线程
        self.thread.start()  # 启动线程

    def __repr__(self):
        return ('color:{color}'
                ''
                'speed:{speed}'
                ''
                'number of particle: {np}'
                ''
                'center:[{cx} , {cy}]'
                ''
                'ellipse:a={ea} , b={eb}'
                ''
                'particle:'
                '{p}'
                ''
                ).format(color=self.color, speed=self.speed, np=self.nParticle, cx=self.center[0], cy=self.center[1],
                         p=str(self.oneParticle), ea=self.ellipsePara[0], eb=self.ellipsePara[1])


def colorChange(fire):
    rgb = re.findall(r'(.{2})', fire.color[1:])
    cs = fire.status

    f = lambda x, c: hex(int(int(x, 16) * (100 - c) / 30))[2:]  # 当粒子寿命到70%时,颜色开始线性衰减
    if cs > 70:
        ccr, ccg, ccb = f(rgb[0], cs), f(rgb[1], cs), f(rgb[2], cs)
    else:
        ccr, ccg, ccb = rgb[0], rgb[1], rgb[2]

    return '#{0:0>2}{1:0>2}{2:0>2}'.format(ccr, ccg, ccb)


def appendFirework(n=1):  # 递归生成烟花对象
    if n > maxFireworks or len(Fireworks) > maxFireworks:
        pass
    elif n == 1:
        cl = '#{0:0>6}'.format(hex(int(random.randint(0, 16777215)))[2:])  # 产生一个0~16777215(0xFFFFFF)的随机数,作为随机颜色
        a = firework(cl, random.uniform(1.5, 3.5), CANVAS_WIDTH, CANVAS_HEIGHT)
        Fireworks.append({'particle': a, 'points': []})  # 建立粒子显示列表,‘particle’为一个烟花对象,‘points’为每一个粒子显示时的对象变量集
        a.explode()
    else:
        appendFirework()
        appendFirework(n - 1)


def show(c):
    for p in Fireworks:  # 每次刷新显示,先把已有的所以粒子全部删除
        for pp in p['points']:
            c.delete(pp)

    for p in Fireworks:  # 根据每个烟花对象,计算其中每个粒子的显示对象
        oneP = p['particle']
        if oneP.status == 100:  # 状态标识为100,说明烟花寿命结束
            Fireworks.remove(p)  # 移出当前烟花
            appendFirework()  # 新增一个烟花
            continue
        else:
            li = [[int(cp[0] * 2) + oneP.center[0], int(cp[1] * 2) + oneP.center[1]] for cp in
                  oneP.curParticle]  # 把中心为原点的椭圆平移到随机圆心坐标上
            color = colorChange(oneP)  # 根据烟花当前状态计算当前颜色
            for pp in li:
                p['points'].append(
                    c.create_oval(pp[0] - oneP.radius, pp[1] - oneP.radius, pp[0] + oneP.radius, pp[1] + oneP.radius,
                                  fill=color))  # 绘制烟花每个粒子

    root.after(10, show, c)  # 回调,每10ms刷新一次


def heart_function(t, shrink_ratio: float = IMAGE_ENLARGE):
    """
    “爱心函数生成器”
    :param shrink_ratio: 放大比例
    :param t: 参数
    :return: 坐标
    """
    # 基础函数
    x = 16 * (sin(t) ** 3)
    y = -(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t))

    # 放大
    x *= shrink_ratio
    y *= shrink_ratio

    # 移到画布中央
    x += CANVAS_CENTER_X
    y += CANVAS_CENTER_Y

    return int(x), int(y)


def scatter_inside(x, y, beta=0.15):
    """
    随机内部扩散
    :param x: 原x
    :param y: 原y
    :param beta: 强度
    :return: 新坐标
    """
    ratio_x = - beta * log(random.random())
    ratio_y = - beta * log(random.random())

    dx = ratio_x * (x - CANVAS_CENTER_X)
    dy = ratio_y * (y - CANVAS_CENTER_Y)

    return x - dx, y - dy


def shrink(x, y, ratio):
    """
    抖动
    :param x: 原x
    :param y: 原y
    :param ratio: 比例
    :return: 新坐标
    """
    force = -1 / (((x - CANVAS_CENTER_X) ** 2 + (y - CANVAS_CENTER_Y) ** 2) ** 0.6)  # 这个参数...
    dx = ratio * force * (x - CANVAS_CENTER_X)
    dy = ratio * force * (y - CANVAS_CENTER_Y)
    return x - dx, y - dy


def curve(p):
    """
    自定义曲线函数,调整跳动周期
    :param p: 参数
    :return: 正弦
    """
    return 4 * (2 * sin(4 * p)) / (2 * pi)


class Heart:
    """
    爱心类
    """

    def __init__(self, generate_frame=20):
        self._points = set()  # 原始爱心坐标集合
        self._edge_diffusion_points = set()  # 边缘扩散效果点坐标集合
        self._center_diffusion_points = set()  # 中心扩散效果点坐标集合
        self.all_points = {}  # 每帧动态点坐标
        self.build(2000)

        self.random_halo = 1000

        self.generate_frame = generate_frame
        for frame in range(generate_frame):
            self.calc(frame)

    def build(self, number):
        # 爱心
        for _ in range(number):
            t = random.uniform(0, 2 * pi)  # 随机不到的地方造成爱心有缺口
            x, y = heart_function(t)
            self._points.add((x, y))

        # 爱心内扩散
        for _x, _y in list(self._points):
            for _ in range(3):
                x, y = scatter_inside(_x, _y, 0.05)
                self._edge_diffusion_points.add((x, y))

        # 爱心内再次扩散
        point_list = list(self._points)
        for _ in range(4000):
            x, y = random.choice(point_list)
            x, y = scatter_inside(x, y, 0.17)
            self._center_diffusion_points.add((x, y))

    @staticmethod
    def calc_position(x, y, ratio):
        # 调整缩放比例
        force = 1 / (((x - CANVAS_CENTER_X) ** 2 + (y - CANVAS_CENTER_Y) ** 2) ** 0.520)

        dx = ratio * force * (x - CANVAS_CENTER_X) + random.randint(-1, 1)
        dy = ratio * force * (y - CANVAS_CENTER_Y) + random.randint(-1, 1)

        return x - dx, y - dy

    def calc(self, generate_frame):
        ratio = 10 * curve(generate_frame / 10 * pi)  # 圆滑的周期的缩放比例

        halo_radius = int(4 + 6 * (1 + curve(generate_frame / 10 * pi)))
        halo_number = int(3000 + 4000 * abs(curve(generate_frame / 10 * pi) ** 2))

        all_points = []

        # 光环
        heart_halo_point = set()  # 光环的点坐标集合
        for _ in range(halo_number):
            t = random.uniform(0, 2 * pi)  # 随机不到的地方造成爱心有缺口
            x, y = heart_function(t, shrink_ratio=11)
            x, y = shrink(x, y, halo_radius)
            if (x, y) not in heart_halo_point:
                # 处理新的点
                heart_halo_point.add((x, y))
                x += random.randint(-11, 11)
                y += random.randint(-11, 11)
                size = random.choice((1, 2, 2))  # 控制外围粒子的大小
                all_points.append((x, y, size))

        # 轮廓
        for x, y in self._points:
            x, y = self.calc_position(x, y, ratio)
            size = random.randint(1, 3)
            all_points.append((x, y, size))

        # 内容
        for x, y in self._center_diffusion_points:
            x, y = self.calc_position(x, y, ratio)
            size = random.randint(1, 2)
            all_points.append((x, y, size))

        self.all_points[generate_frame] = all_points

    def render(self, render_canvas, render_frame):
        for x, y, size in self.all_points[render_frame % self.generate_frame]:
            render_canvas.create_rectangle(x, y, x + size, y + size, width=0, fill=HEART_COLOR)


def draw(main: Tk, render_canvas: Canvas, render_heart: Heart, render_frame=0):
    render_canvas.delete('all')
    render_heart.render(render_canvas, render_frame)
    main.after(160, draw, main, render_canvas, render_heart, render_frame + 1)




if __name__ == '__main__':
    appendFirework(maxFireworks)

    root = Tk()  # 一个Tk
    canvas = Canvas(root, bg='black', height=CANVAS_HEIGHT, width=CANVAS_WIDTH)
    canvas.create_rectangle(0, 0, CANVAS_HEIGHT, CANVAS_WIDTH, fill="black")
    canvas.pack()
    root.after(10, show, canvas)
    heart = Heart()  # 心
    draw(root, canvas, heart)  # 开始画画~

    root.mainloop()

运行结果(运行之后是动态效果)

极光不凉
关注 关注
  • 17
    点赞
  • 134
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
c++编浪漫烟花 表白代码大全(奇牛学院)
m0_72703340的博客
07-25 3万+
浪漫烟花c++
烟花网页源码
02-03
烟花网页源码,里面内容可自行更改。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
爱心源码 李洵的爱心代码
12-08
爱心源码 李洵的爱心代码 表白专用代码
python实现李峋同款动态爱心
11-09
python代码 实现李峋同款爱心 动态爱心
一篇文章教会你如何用Python制作爱心代码(跳动版)
最新发布
2301_78077589的博客
06-18 1068
Hello大家好,今天来给大家分享一波用Python制作的表白代码——Python爱心代码,接下来会给大家详细讲解,代码实现的详细步骤,以及代码运行所需要的环境。
爱心源码一行Python代码实现爱心
12-03
python实现爱心,一行Python代码就够了。其实绘制图形的思路就是在一个30X30的区域内,对于符合x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0约束的格子,按顺序填入str中的字母。通过列表中的两层循环,外层对于y的循环是从-30到30的循环,内层是对x的从-30到30的循环,在每一位,根据判断的情况,打印o或者 。
python爱心代码python爱心代码高级.zip
05-16
python爱心代码高级python爱心代码python爱心代码高级.zip python爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippyt
3d效果动态无限星空粒子宇宙图
06-24
基于three.js的无限宇宙图,可自由修改背景色和粒子效果。
最强Python表白代码来了
热门推荐
xiangxue888的博客
06-01 6万+
最强Python表白代码来了
爱心代码烟花代码,附带教程,手残党也能学会!!
weixin_44006731的博客
01-20 1万+
爱心代码烟花代码,附带教程,手残党也能学会!!
Python-烟花代码
m0_59452967的博客
11-10 3217
代码Python-烟花代码
记事本实现浪漫烟花、浪漫爱心、浪漫流星雨
qq_45744011的博客
11-11 1万+
将这段代码复制粘贴到记事本中,将记事本后缀名.txt改为.html,再次打开就可以看到下面这样的效果啦,动手试试吧!
基于Python实现粒子滤波效果
01-19
1、建立仿真模型 (1)假设有一辆小车在一平面运动,起始坐标为[0,0],运动速度为1m/s,加速度为0.1 m / s 2 m/s^2 m/s2,则可以建立如下的状态方程: Y = A ∗ X + B ∗ U Y=A*X+B*U Y=A∗X+B∗U U为速度和加速度的的矩阵 U = [ 1 0.1 ] U= \begin{bmatrix} 1 \\ 0.1\\ \end{bmatrix} U=[10.1​] X为当前时刻的坐标,速度,加速度 X = [ x y y a w V ] X= \begin{bmatrix} x \\ y \\ yaw \\ V \end{bmatrix} X=⎣
爱心代码-使用Python实现的爱心代码.zip
03-10
Python编程语言中,"爱心代码"通常是指利用字符或者字符串拼接生成一个形似爱心的图案。这种代码是初学者常用来练习控制流、字符串操作以及艺术输出的一个经典示例。下面,我们将深入探讨如何使用Python实现爱心...
Heart爱心代码Python实现.zip
03-10
最后,我们在`main`函数中设置了背景颜色为白色,并在窗口中央左右各绘制了一个爱心。 除了`turtle`库,Python还可以使用其他库如`pygame`或`PIL`(Python Imaging Library)来实现更复杂的心形图案,甚至是动态的...
python爱心代码.rar
07-20
这个"python爱心代码.rar"压缩包很可能包含了一个Python脚本,该脚本会在控制台或终端上打印出满屏的爱心图案。 首先,让我们来看看如何在Python中创建一个简单的爱心图案。通常,这种代码会利用字符串格式化或者...
python非常炫酷的跳动爱心代码
05-16
python爱心代码高级 python非常炫酷的跳动爱心代码 python非常炫酷的跳动爱心代码 python非常炫酷的跳动爱心代码 python非常炫酷的跳动爱心代码 python非常炫酷的跳动爱心代码
爱心代码python)附讲解
12-09
爱心代码Python)附讲解 本资源提供了多种使用 Python 语言绘制爱心图形的方法,包括一行代码绘制爱心、动态画红心、填充型输出爱心等。 知识点1: 一行代码绘制爱心 --------------------------- 使用 Python ...
代码出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心
逆境清醒的博客
08-01 3万+
有缘遇到真心对你好的人不容易,像父母、朋友、真爱你的人,如果遇到了,请好好珍惜,因为有时,有些你想象不到的事情会突然发生,如果遇到了,请别慌乱害怕,那些真心对你的人会陪在你身边和你一起度过最难熬的日子,所以请抓住每一分每一秒,好好对待身边人,凡事别计较太多,把心放宽。在你遇到。。。时,请记住,你并不是唯一一个,这世界上有很多人正在经历着和你一样的事情,虽然他们没有或者无法说出来。.....................
爱心代码 python
09-12
### 回答1: "爱心代码" 应该指的是用编程语言爱心图案。在 Python 中可以使用 print() 函数和特殊字符来绘制爱心图案。例如: ```python print(" ❤️ ") print(" ❤️❤️❤️ ") print(" ❤️❤️❤️❤️❤️ ") print("❤️❤️❤️❤️❤️❤️❤️") print(" ❤️❤️❤️❤️❤️ ") print(" ❤️❤️❤️ ") print(" ❤️ ") ``` 这段代码会在终端上输出一个爱心图案。 ### 回答2: 爱心代码是一种用Python编程语言实现的图形化表示的程序,可以绘制出一个形状像爱心的图案。通过一系列的代码,可以让计算机生成这样一个图案,并在屏幕上显示出来。 以下是一个简单的Python代码示例: ```python import turtle # 设置窗口大小和背景颜色 turtle.setup(width=600, height=400) turtle.bgcolor('black') # 设置画笔属性 turtle.penup() turtle.hideturtle() turtle.speed(5) # 移动画笔到起始位置 turtle.goto(0, -180) turtle.color('red') # 绘制爱心 turtle.begin_fill() turtle.left(50) turtle.forward(133) turtle.circle(50, 200) turtle.right(140) turtle.circle(50, 200) turtle.forward(133) turtle.end_fill() turtle.done() ``` 运行以上代码,就可以在屏幕上看到一个红色的爱心图案。该代码使用了Python的turtle库来实现图形绘制,通过控制画笔的移动和角度的调整,完成了一个简单的爱心图案。 爱心图案的实现原理是通过控制画笔绘制两个相互交叉的半圆弧线段,然后再通过直线连接两个半圆弧的起始和结束点,最后通过填充颜色实现爱心的红色效果。 这段代码只是一个简单的示例,如果想要实现更复杂、美观的爱心图案,可以通过调整画笔的移动、角度和颜色等属性来达到目的。同时,也可以添加循环、条件语句等更多的逻辑,增加整个程序的交互性和可玩性。 ### 回答3: 爱心代码是一种用Python编程语言代码,可以在控制台上输出一个爱心形状。下面是一个简化版的爱心代码示例: ```python heart = [ " ****** ****** ", " ** ** ** ** ", " ** *** ** ", "** * **", "** ", " ** ", " ** ", " ** ", " ** ", " ** ", " ** ", " ** ", " * " ] for line in heart: print(line) ``` 运行这段代码,会在控制台上输出一个带有爱心形状的图案。 这个爱心代码是通过将一个爱心的轮廓分解成若干行字符串来实现的。每一行字符串包含一些星号和空格,使用一定的排列方式来形成爱心的轮廓。通过循环打印每一行字符串,我们可以在控制台上逐行输出这个爱心形状。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 爱心代码 python(以烟花为背景) 15354
  • C++的浅拷贝与深拷贝 8394
  • Python 输出100-999的水仙花数 7526
  • vc2010以及VS2019安装使用教程 4621
  • MySQL的安装步骤以及遇到的常见问题(完整版) 3699

最新评论

  • MySQL的安装步骤以及遇到的常见问题(完整版)

    m0_74303022: 太给力了!

  • 用c语言调用Easy X实现图像的输出,附带音乐的读取

    spontaneousY: 谢谢

  • 爱心代码 python(以烟花为背景)

    answerxjxt: 谢谢你 先去找一些实践项目跟着练吗 理解逻辑思维 然后如果有需要再系统学习后面的领域吗 是这样吗

  • 爱心代码 python(以烟花为背景)

    极光不凉: 我建议你直接从具体的项目入手,然后发散去学习,空闲时间多的话再系统性学习,从网上找相关完整代码去看

  • 爱心代码 python(以烟花为背景)

    answerxjxt: 刚学完基础 请问要是自己也想做一个爱心或者烟花啥的 这个是要去专门学习math random time 还有threading等模块吗 好懵😮

大家在看

  • 图床共享云存储 115
  • 高并发内存池(三)Central Cache的框架及实现 603
  • 【初阶数据结构】6.二叉树(1)
  • Linux网络:传输层协议TCP(一)

最新文章

  • 回溯法解旅行售货员问题【C++】
  • 回溯法解n后问题,输入n,分行输出所有可行解【C++】
  • 构造哈夫曼树 键入权重并进行对节点的先序遍历【C++】
2022年25篇

目录

目录

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司淮北行业关键词排名中国网站优化系统招商平台佛山seo网站优化效果如何兴化网站关键词优化肥乡网站优化哪家好南充网站优化服务有哪些衡阳专业网站优化seo公司安庆网站首页优化河南专业网站优化系统岳阳关键词排名优化免费网站优化公司网站优化教学郑州瓷砖行业网站优化推广渠道云速推网站优化免费咨询如何提高百度关键词排名聊城电脑网站优化坪山网站优化排名企业西藏网站关键词排名优化观澜网站关键词优化哪家强关键词优化排名了火16星高尚聊城正规网站优化优化过度对网站有什么影响黄浦网站优化有效吗北京网站的优化公司哪家好宁海关键词排名优化金沙县网站seo优化排名关键词百度移动排名是什么关键词排名拍金手指下拉十南山优化网站建设深圳移动网站优化方案歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化