自动钉木箱机器人_她用钉满小孔的木箱种花,几个月后路人全看傻眼

美丽的花草总是能带给人带来心旷神怡的感受,家里若能种些缤纷的花草,不仅能美化环境,还能给路过的人带来美好的风景。利用巧思和双手,就能创造出与众不同的风景。

DIY达人爱咪(Amy)也经常在自己的网站上和大家分享她DIY的心得,这次要介绍她利用空木箱,建造了一个超梦幻的祕密花园,只花几个月的时间就能创造五彩缤纷的天堂,美丽景像让路过的人们都停下脚步疯狂拍照!

爱咪尝试用木箱种植已经试了很多次,但都因为各种原因失败,这次她改变方式终于成功创造祕密花园,让我们来看看成果如何吧!

爱咪在木箱的周围钻了好几个的等距的圆孔。

她从花市买来矮牵牛准备开始进行种植,先在木箱底部铺上杂草,再用湿土覆盖保持水分。

接着种上 层花苗,再铺上一层湿土。

过多的剩余空间则用填充物填满。

一层一层种上花苗后,为了不让花儿枯死,不仅需要每天浇水,每个礼拜还要施一次肥。

花苗在爱咪的细心照料下渐渐成长茁壮。

很快的,她的秘密花园越来越缤纷。

后来由于夏天天气太热,叶子虽然很绿,但是花却开没几朵,她意识到她必须除虫,祕密花园才能回复往日的茂盛。

盛开的花朵又再次让花园繁荣起来。

花园变得相当惊人,路过之人无不被眼前的美景吸引,缤纷的花朵覆盖了整个木箱,彷彿来到了鲜花殿堂!

最后的美景真的震撼到小编了!虽然建造一个花园并没有想象的那么简单,浇水、施肥、除虫…等例行工作都不得马虎,如果你愿意花时间好好照料这些花草,相信拥有美丽花园的日子不远了。

当然,爱咪的种植方式比较适合那些家里有庭院或花园的家庭,但现在很多城市家庭并没有这么优秀的条件,只有一间小小的阳台,所以用这种方法的话可能会占用比较大空间,小编建议大家可以试试下面的方法——PVC管种植花草

PVC管(直径16cm左右的卖建材或五金的地儿都有卖)、(不要问PVC管比花盆贵的问题,一个花盆种不了几种花还占地方)

▼ 款:

要长度80厘米-1米的

长度10cm画一道5cm的橫线

画好线锯开

锯开后用火烤一下

趁热拿个小管往下压(千万不要直接用手压,除非你的皮够厚)

全部弄好了装上底部封盖就OK了

放入土,移植。

看看长势吧,呼呼滴涨不停!

买上自己喜欢的花种,种上,开花时阳台美翻了!

▼第二款:

材料:PVC排水管一根200MM的,一根160MM,两个200MM弯头、一个160MM的三通,一个200/160d的异三通,一瓶PVC胶水。

施工中……先造型。

打洞可是个技术活

完工效果图

圆洞虽然美观但太麻烦,也可打直筒的方洞

当然,如果地方大你也可以这样:

看看别人家的阳台菜园:

你也可以选择种青菜,比外面买的更放心了

▼第三款:

世上最便宜的立体种植箱

一、泡沫箱的改造:工具:美工刀、尺、笔

步骤:

1、用笔和尺子在泡沫箱及盖子上按一定间距画好种植槽尺寸的线条。

2、用美工刀将泡沫箱按预定尺寸切割,侧面四周种植槽的切割方向为斜45度。

3、用胶带把盖子和盒子连接起来,并把箱子直立起来,面积最小的一面为底面和顶面,在顶部开大的长方形口

二、成果

从顶部放入种植土,移栽后浇水定根

1、种植后

2、成长中

这个真的是废物利用中的高级利用了,没有泡沫箱有泡沫自己也可以DIY出来啊。是不是现在超后悔丢乐家里那些泡沫昂??

所以,以后在扔那些所谓没用东西的时候,先想想它还可以怎么用吧,让别人都羡慕你的巧手吧,动手做起来……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个带有纹理光照的木箱的C++代码,使用OpenGL库实现: ```c++ #include <GL/glut.h> #include <SOIL/SOIL.h> GLuint texture; void init(void) { glClearColor(0.0, 0.0, 0.0, 0.0); glEnable(GL_DEPTH_TEST); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_COLOR_MATERIAL); texture = SOIL_load_OGL_texture("wooden_box.jpg", SOIL_LOAD_AUTO, SOIL_CREATE_NEW_ID, SOIL_FLAG_INVERT_Y); glBindTexture(GL_TEXTURE_2D, texture); } void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); GLfloat position[] = {0.0, 0.0, 5.0, 1.0}; GLfloat ambient[] = {0.2, 0.2, 0.2, 1.0}; GLfloat diffuse[] = {1.0, 1.0, 1.0, 1.0}; GLfloat specular[] = {1.0, 1.0, 1.0, 1.0}; glLightfv(GL_LIGHT0, GL_POSITION, position); glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); glLightfv(GL_LIGHT0, GL_SPECULAR, specular); GLfloat mat_ambient[] = {0.7, 0.7, 0.7, 1.0}; GLfloat mat_diffuse[] = {0.8, 0.8, 0.8, 1.0}; GLfloat mat_specular[] = {1.0, 1.0, 1.0, 1.0}; GLfloat mat_shininess[] = {100.0}; glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient); glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse); glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess); glEnable(GL_TEXTURE_2D); glBegin(GL_QUADS); glNormal3f(0.0, 0.0, 1.0); glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, -1.0, 1.0); glTexCoord2f(1.0, 0.0); glVertex3f(1.0, -1.0, 1.0); glTexCoord2f(1.0, 1.0); glVertex3f(1.0, 1.0, 1.0); glTexCoord2f(0.0, 1.0); glVertex3f(-1.0, 1.0, 1.0); glNormal3f(0.0, 0.0, -1.0); glTexCoord2f(1.0, 0.0); glVertex3f(-1.0, -1.0, -1.0); glTexCoord2f(1.0, 1.0); glVertex3f(-1.0, 1.0, -1.0); glTexCoord2f(0.0, 1.0); glVertex3f(1.0, 1.0, -1.0); glTexCoord2f(0.0, 0.0); glVertex3f(1.0, -1.0, -1.0); glNormal3f(0.0, 1.0, 0.0); glTexCoord2f(0.0, 1.0); glVertex3f(-1.0, 1.0, -1.0); glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, 1.0, 1.0); glTexCoord2f(1.0, 0.0); glVertex3f(1.0, 1.0, 1.0); glTexCoord2f(1.0, 1.0); glVertex3f(1.0, 1.0, -1.0); glNormal3f(0.0, -1.0, 0.0); glTexCoord2f(1.0, 1.0); glVertex3f(-1.0, -1.0, -1.0); glTexCoord2f(0.0, 1.0); glVertex3f(1.0, -1.0, -1.0); glTexCoord2f(0.0, 0.0); glVertex3f(1.0, -1.0, 1.0); glTexCoord2f(1.0, 0.0); glVertex3f(-1.0, -1.0, 1.0); glNormal3f(1.0, 0.0, 0.0); glTexCoord2f(1.0, 0.0); glVertex3f(1.0, -1.0, -1.0); glTexCoord2f(1.0, 1.0); glVertex3f(1.0, 1.0, -1.0); glTexCoord2f(0.0, 1.0); glVertex3f(1.0, 1.0, 1.0); glTexCoord2f(0.0, 0.0); glVertex3f(1.0, -1.0, 1.0); glNormal3f(-1.0, 0.0, 0.0); glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, -1.0, -1.0); glTexCoord2f(1.0, 0.0); glVertex3f(-1.0, -1.0, 1.0); glTexCoord2f(1.0, 1.0); glVertex3f(-1.0, 1.0, 1.0); glTexCoord2f(0.0, 1.0); glVertex3f(-1.0, 1.0, -1.0); glEnd(); glDisable(GL_TEXTURE_2D); glutSwapBuffers(); } void reshape(int w, int h) { glViewport(0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutInitWindowSize(500, 500); glutInitWindowPosition(100, 100); glutCreateWindow("Textured Box"); init(); glutDisplayFunc(display); glutReshapeFunc(reshape); glutMainLoop(); return 0; } ``` 其中,`wooden_box.jpg`是木箱的纹理文件,需要与代码文件放在同一目录下。在`init()`函数中,使用`SOIL`库读取纹理文件,并绑定到OpenGL的纹理对象上。 在`display()`函数中,设置了光源和材质属性,并在绘制木箱的每个面时设置纹理坐标和法向量。 在`main()`函数中,创建窗口并设置回调函数,进入主循环。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值