关于利用OpenGL ES进行Android开发中,外部obj文件模型导入的问题 10C

我在用OpenGL ES进行一个Android项目的开发,在一个3D场景中,我需要从外部导入.obj文件的模型,
但是我不知道如何改变导入的模型的尺寸。是应该在3DMax等软件里修改模型的尺寸,还是应该再Android
Studio中编程改变尺寸呢?希望能有大神指点一下。急求

2个回答

兄弟,你要解决这种基本问题什么模型缩放旋转平移之类的。 你要了解基本的图形学光栅化流程,那套管线。
首先,一个Obj三角形的顶点数值Pos,代表它的ModelSpace模型空间位置,模型原点一般在模型底部中心,(搞清楚坐标的坐标系位置很重要)。
下一步,放到场景里面,他会有平移旋转缩放,经过了世界空间的变换,原点就是世界空间的原点(0,0,0),WorldSpace。、
再下一步,把这个世界空间里面的所有东西相对视图空间ViewSpace进行变换,原点是相机/人眼。
然后再把视图空间里面的所有点,进行投影变换ProjectionSpace(正交/投影),远小近大的效果。 最后光栅化。

这样一个Obj三角形就被拍到屏幕。成二维了。

理解上面基本流程之后,如果你是想让看见的模型更小,那当然是在第二步,WorldSpace世界空间变换的时候做缩放处理。

原理就是这样的。

具体代码,你看看devmiao , 给你的链接,再结合我的原理,你就搞定了。兄弟!!!

qq_25775847
许一世烟花 请问实例代码的链接在哪里呢
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
osg输出的obj文件包含重复节点?
如题,我用osg的WirtNodeFile接口输出obj文件,得到的文件含有很多重复的节点 ,而且效率也不高,所以想问下大家,osg的导出接口能不能设置一些参数,避免重 复节点的输出,提高效率,像导入obj的接口一样?
QT3D场景中如何加载OpenGL画的实体?
在Qt5.12版本中![图片说明](https://img-ask.csdn.net/upload/201912/20/1576829678_646846.png) , QT3D场景加载Obj文件后, 可以用Qt自带的基本实体进行绘制, 但是由于没有绘制圆弧管的基本实体, 但是绘制上千个实体时出图的效率太低, 想请问: 如何在该场景中利用OpenGL画实体?能否提供这种混合编程的实例?谢谢!
android 3D可以旋转视角的导航地图如何开发?小弟不胜感激。
请问大侠们 android 3D可以旋转视角的导航地图如何开发?小弟不胜感激。 android客户端用 opengl es 吗? 服务器端用什么? 使用ArcGIS Server 做后台地图服务器吗? 还是使用 opengl es 加载 obj三维模型文件,组成3D场景进行导航服务呢?
OpenGL模型导入中关于材质的问题。
最近在根据Learn OpenGL学OpenGL。在通过Assimp加载.OBJ文件模型时,在.mtl文件中保存有下面的所示材质信息。 newmtl Arm Ns 96.078431 Ka 0.000000 0.000000 0.000000 Kd 0.640000 0.640000 0.640000 Ks 0.500000 0.500000 0.500000 Ni 1.000000 d 1.000000 illum 2 map_Kd arm_dif.png map_Bump arm_showroom_ddn.png map_Ks arm_showroom_spec.png Learn OpenGL 只处理了纹理映射部分,但是没有处理材质颜色Ka,Kd,Ks这些部分,我在网上下载的一些模型有的没有纹理映射,只有材质颜色Ka,Kd,Ks。 所以我现在不知道当只有材质颜色Ka,Kd,Ks时要怎么处理,而两者都有时又要怎么处理。 刚刚学习OpenGL,可能这个问题问的比较蠢,希望大家见谅。
qt eventFilter的问题
![图片说明](https://img-ask.csdn.net/upload/202001/17/1579250021_653620.png) 我把return QWidget::eventFilter(obj,event); 这行注释了,直接改成return true; 为什么lineEdit的行编辑框在界面上都不显示了。
如何在three.js中实现多个外部加载OBJ模型的逐一显示
求助!如何在three.js中实现多个外部加载OBJ模型的逐一显示,即在列表中选中名称显示对应的模型,其余的不显示。本人自学的,实在无法解决,特来求助!我想要的效果如图所示,即three.js官网中的一个例子。![图片说明](https://img-ask.csdn.net/upload/201703/13/1489405743_859037.jpg)http://carvisualizer.plus360degrees.com/threejs/
Intel ISPC编译器生成的.h与.obj文件如何使用?
最近在利用ispc做加速的项目,我下载了ispc.exe(https://ispc.github.io/ispc.html),自己编写了一个.ispc文件,使用Windows 命令行的方式,利用ispc.exe将.ispc文件生成了一个.h与.obj文件,在我自己的项目中已经包含了生成的.h文件, 但是 还不清楚如何使用.obj文件,目前当我编译我的项目时,会显示无法解析的外部符号这样的问题,请问有没有人做过相关的项目,请教大家如何使用.h与.obj文件。
类的定义和它的成员函数的实现分开放会报错
为什么将类的定义和它的成员函数的实现分别放在.h和.cpp中就会报错: LNK2019: 无法解析的外部符号 "public: void __cdecl YtPlc_Mitsubishi_Mc::InitParam(void)" (?InitParam@YtPlc_Mitsubishi_Mc@@QEAAXXZ),该符号在函数 main 中被引用 PLC_test D:\zhoujy\prj\PLC_test\PLC_test\PLC_test.obj .h中的代码如下: ``` class YtPlc_Mitsubishi_Mc // : public YtPlc { public: YtPlc_Mitsubishi_Mc(); //初始化参数 void InitParam(); }; ``` .cpp中的实现如下: ``` #include "ytplc_mitsubishi_mc.h" YtPlc_Mitsubishi_Mc::YtPlc_Mitsubishi_Mc() { } void YtPlc_Mitsubishi_Mc::InitParam() { //发送命令 write_buff_[0] = 0x50; // 副头部 write_buff_[1] = 0x00; // 副头部 write_buff_[2] = 0x00; // 网络编号 write_buff_[3] = (char)0xff; // 可编程控制器编号 write_buff_[4] = (char)0xff; // 请求目标模块I/O编号L write_buff_[5] = 0x03; // 请求目标模块I/O编号H write_buff_[6] = 0x00; // 请求目标模块站号 // 长度从CPU监视定时器L到指令结束 write_buff_[7] = 0x00; //请求数据长度L write_buff_[8] = 0x00; //请求数据长度H //CPU 监视定时器 0:无限等待 0001~FFFF H (1~65535): 等待时间(单位 250ms) @《三菱Q_L系列通信协议参考》3.1.3 P73 write_buff_[9] = 0x01; // CPU监视定时器L write_buff_[10] = 0x00; // CPU监视定时器H // 指令1401 @《三菱Q_L系列通信协议参考》3.3.7 P154 write_buff_[11] = 0x01; // 指令L write_buff_[12] = 0x14; // 指令H write_buff_[13] = 0x00; // 子指令L write_buff_[14] = 0x00; // 子指令H // 字单位的批量写入 write_buff_[15] = 0x00; // 起始软元件 write_buff_[16] = 0x00; // 起始软元件 write_buff_[17] = 0x00; // 起始软元件 write_buff_[18] = 0x00; // 软元件代码 write_buff_[19] = 0x00; // 软元件点数 write_buff_[20] = 0x00; // 软元件点数 // 软元件点数的范围 // e.g 1995H 1202H 1130H -> {95H 19H 02H 12H 30H 12H} for (int i = 0; i < 20; i++) { write_buff_[21 + i * 2] = 0x00; write_buff_[21 + i * 2 + 1] = 0x00; } //读取命令 read_buff_[0] = 0x50; // 副头部 read_buff_[1] = 0x00; // 副头部 read_buff_[2] = 0x00; // 网络编号 read_buff_[3] = (char)0xff; // 可编程控制器编号 read_buff_[4] = (char)0xff; // 请求目标模块I/O编号L read_buff_[5] = 0x03; // 请求目标模块I/O编号H read_buff_[6] = 0x00; // 请求目标模块站号 read_buff_[7] = 0x0c; //请求数据长度L read_buff_[8] = 0x00; //请求数据长度H //CPU 监视定时器 0:无限等待 0001~FFFF H (1~65535): 等待时间(单位 250ms) @《三菱Q_L系列通信协议参考》3.1.3 P73 read_buff_[9] = 0x01; // CPU监视定时器L read_buff_[10] = 0x00; // CPU监视定时器H // 0401 T寄存器读取 @《三菱Q_L系列通信协议参考》3.3.6 P150 // WARNING: M寄存器读取 send_buff_[18] = 0x90 待确认 read_buff_[11] = 0x01; // 指令L read_buff_[12] = 0x04; // 指令H read_buff_[13] = 0x00; // 子指令L read_buff_[14] = 0x00; // 子指令H // 字单位的批量写入 read_buff_[15] = 0x00; // 起始软元件 read_buff_[16] = 0x00; // 起始软元件 read_buff_[17] = 0x00; // 起始软元件 read_buff_[18] = 0x00; // 软元件代码 read_buff_[19] = 0x00; // 软元件点数 read_buff_[20] = 0x00; // 软元件点数 } ``` 但如果把它们都放到头文件中,即把成员函数和构造函数的实现和类的定义放到一起,就不会有这个问题了
webrtc编译Android版本编译参数is_clang=false时,编译报错,is_clang=true时,编译成功。
[2274/3376] LINK ./rgba_to_i420_converter FAILED: rgba_to_i420_converter exe.unstripped/rgba_to_i420_converter python "../../build/toolchain/gcc_link_wrapper.py" --output="./rgba_to_i420_converter" --strip="../../buildtools/third_party/eu-strip/bin/eu-strip" --unstripped-file="./exe.unstripped/rgba_to_i420_converter" -- ../../third_party/llvm-build/Release+Asserts/bin/clang++ -Wl,--fatal-warnings -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-z,defs -Wl,--as-needed -fuse-ld=gold -Wl,--icf=all -Wl,--exclude-libs=libgcc.a -Wl,--exclude-libs=libvpx_assembly_arm.a --target=aarch64-linux-android -Wl,-mllvm,-enable-machine-outliner=never -Wl,--warn-shared-textrel -Wl,-O2 -Wl,--gc-sections -nodefaultlibs --sysroot=../../third_party/android_ndk/platforms/android-21/arch-arm64 -nostdlib -Wl,--warn-shared-textrel -pie -Bdynamic -Wl,-z,nocopyreloc -Wl,--dynamic-linker,/system/bin/linker64 -L../../third_party/android_ndk/sources/cxx-stl/llvm-libc++/libs/arm64-v8a -o "./exe.unstripped/rgba_to_i420_converter" -Wl,--start-group @"./rgba_to_i420_converter.rsp" -Wl,--end-group ../../third_party/android_ndk/platforms/android-21/arch-arm64/usr/lib/crtbegin_dynamic.o -lc -lgcc_s -lm -lrt -landroid_support ../../third_party/android_ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/libgcc.a -ldl -llog -lGLESv2 ../../third_party/android_ndk/platforms/android-21/arch-arm64/usr/lib/crtend_android.o /usr/bin/ld.gold: fatal error: obj/rtc_tools/rgba_to_i420_converter/converter.o: unsupported ELF machine number 183 clang: error: linker command failed with exit code 1 (use -v to see invocation)
DLL文件包含自己生成的lib文件,编译错误
1. 我先用空项目 添加了lua的文件 生成了 lua.lib文件 2. 我创建了一个MFC_DLL文件 1)在项目->属性->C/C++->附加包含目录里包含了 lua所有.h .c的文件夹 2)在项目->属性->连接器->常规->附加库目录里包含了lua.lib的文件夹 3)在项目->属性->连接器->输入->附加依赖项里输入了lua.lib 我创建的 .h文件的代码 #infndef LUASSSS_H #define LUASSSS_H #include <windows.h> extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" } extern lua_State *L; #endif 我创建的 .cpp文件的代码 #include "StdAfx.h" #include "Luassss.h" lua_State *L = luaL_newstate(); 代码显示无错误 但是编译的时候出现各种错误 请问是我哪里出错了????? 谢谢帮忙 我自己摸索了2天都没搞定 头都大了 error LNK2005: _strstr 已经在 libcmtd.lib(strstr.obj) 中定义 error LNK2005: _strchr 已经在 libcmtd.lib(strchr.obj) 中定义 error LNK2005: _fclose 已经在 libcmtd.lib(fclose.obj) 中定义 error LNK2005: _ferror 已经在 libcmtd.lib(feoferr.obj) 中定义 error LNK2005: _ungetc 已经在 libcmtd.lib(ungetc.obj) 中定义 error LNK2005: ___iob_func 已经在 libcmtd.lib(_file.obj) 中定义 error LNK2005: _fread 已经在 libcmtd.lib(fread.obj) 中定义 error LNK2005: _feof 已经在 libcmtd.lib(feoferr.obj) 中定义 error LNK2005: __errno 已经在 libcmtd.lib(dosmap.obj) 中定义 error LNK2005: _realloc 已经在 libcmtd.lib(dbgrealloc.obj) 中定义 error LNK2005: _free 已经在 libcmtd.lib(dbgfree.obj) 中定义 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _exit 已经在 libcmtd.lib(crt0dat.obj) 中定义 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _isspace 已经在 libcmtd.lib(_ctype.obj) 中定义 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _strtoul 已经在 libcmtd.lib(strtol.obj) 中定义 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _strtod 已经在 libcmtd.lib(strtod.obj) 中定义 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _sprintf 已经在 libcmtd.lib(sprintf.obj) 中定义 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _strcspn 已经在 libcmtd.lib(strcspn.obj) 中定义 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _strcoll 已经在 libcmtd.lib(strcoll.obj) 中定义 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _floor 已经在 libcmtd.lib(_floor_pentium4_.obj) 中定义 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _iscntrl 已经在 libcmtd.lib(_ctype.obj) 中定义 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _isalnum 已经在 libcmtd.lib(_ctype.obj) 中定义 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _isalpha 已经在 libcmtd.lib(_ctype.obj) 中定义 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _isdigit 已经在 libcmtd.lib(_ctype.obj) 中定义 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _localeconv 已经在 libcmtd.lib(lconv.obj) 中定义 1>MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) 已经在 libcmtd.lib(typinfo.obj) 中定义 1>MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) 已经在 libcmtd.lib(typinfo.obj) 中定义 1> 正在创建库 ..\test\testdll.lib 和对象 ..\test\testdll.exp 1>LINK : warning LNK4098: 默认库“MSVCRTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library 1>..\test\testdll.dll : fatal error LNK1169: 找到一个或多个多重定义的符号 1> 1>生成失败。 1> 1>已用时间 00:00:01.05 ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
Android 显示三维模型
现在需要在android系统上显示三维模型,就是用cad软件画出来那种。请问怎么显示? 用opengl可行吗?文件选择OBJ文件? 三维模型就是这个类型,软件是catia? ![图片说明](https://img-ask.csdn.net/upload/201511/11/1447226823_373053.png)
java3D中导入的obj文件能否保留原来obj文件中的动作效果
各位表哥表姐,在java3D中导入的obj文件能否保留原来obj文件中的动作效果,灯光,文理等信息
如何使用FLTK读取并显示一个obj文件?
这次的要求是使用FLTK读取obj文件并能用鼠标和键盘实现放大,缩小,旋转视图等功能。 关于读取obj文件,我使用openGL会做,但是在FLTK下面要如何进行?我看到有FLTK和openGL联合实现一些功能,或者是可以将openGL的显示内容直接套在FLTK里面? 刚接触FLTK,搞不太明白怎么用。
linux上导入1个G的dmp,导出来只有不到5M
在centos7的oracle上创建新用户后,导入了一个1G多的dmp文件,再将这个用户导出时只有几个M ``` [oracle@oracle-test ~]$ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK[oracle@oracle-test ~]$ exp isc/isc@192.168.157.132:1521/orcl file=/disk3/expisc/tisc.dmp owner=isc Export: Release 11.2.0.1.0 - Production on Tue Jan 14 12:36:23 2020 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set About to export specified users ... . exporting pre-schema procedural objects and actions . exporting foreign function library names for user ISC . exporting PUBLIC type synonyms . exporting private type synonyms . exporting object type definitions for user ISC About to export ISC's objects ... . exporting database links . exporting sequence numbers . exporting cluster definitions . about to export ISC's tables via Conventional Path ... . . exporting table HR_ORG_BASIC_INFO 0 rows exported . . exporting table HR_ORG_BASIC_INFO_TEMP 0 rows exported . . exporting table HR_POST_BASIC_INFO 0 rows exported . . exporting table HR_USER_BASIC_INFO 0 rows exported . . exporting table ISC_ACCOUNT 4 rows exported . . exporting table ISC_ACCOUNT_EXT_PROP 0 rows exported . . exporting table ISC_ACTOR_ROLE_R 4362 rows exported . . exporting table ISC_APPLICATION 3 rows exported . . exporting table ISC_APPSHOW_CONF 1 rows exported . . exporting table ISC_APP_CODE_CONF 0 rows exported . . exporting table ISC_APP_CODE_FIELD_EXT 0 rows exported . . exporting table ISC_APP_DATARESOUCE_R 3 rows exported . . exporting table ISC_AUTHORIZE_COMMIT 0 rows exported . . exporting table ISC_BASEORG 8801 rows exported . . exporting table ISC_BASEORG_EXT_PROP 0 rows exported . . exporting table ISC_BASEORG_SPORG_UNIT_R 0 rows exported . . exporting table ISC_COMMON_CONST 196 rows exported . . exporting table ISC_DEPLOY 2 rows exported . . exporting table ISC_DIM 0 rows exported . . exporting table ISC_DUTY 0 rows exported . . exporting table ISC_LOGIN_LOCK 36 rows exported . . exporting table ISC_MAIL_CONF 0 rows exported . . exporting table ISC_MAIL_TEMPLATE_CONF 0 rows exported . . exporting table ISC_MDMORG_SPORG_UNIT_R 0 rows exported . . exporting table ISC_MDM_ORG 0 rows exported . . exporting table ISC_MSG_RESOURCE 0 rows exported . . exporting table ISC_NODE 3 rows exported . . exporting table ISC_NODE_DEPLOY_R 2 rows exported . . exporting table ISC_ORG_ATTRIBUTE 11 rows exported . . exporting table ISC_ORG_SYS_DIM_R 0 rows exported . . exporting table ISC_ORG_UNIT_DIM_R 0 rows exported . . exporting table ISC_RESOURCE 642 rows exported . . exporting table ISC_RESOURCE_EXT_PROPERTY 172 rows exported . . exporting table ISC_RESOURCE_EXT_PROPERTY_ETL 0 rows exported . . exporting table ISC_RESOURCE_TYPE 15 rows exported . . exporting table ISC_RESOURC_TYPE_APPLICATION_R 0 rows exported . . exporting table ISC_RES_EXT_VALUE 3230 rows exported . . exporting table ISC_RES_RES_R 638 rows exported . . exporting table ISC_ROLEGROUP 8 rows exported . . exporting table ISC_ROLE_LAYER_BY_ORG 67 rows exported . . exporting table ISC_ROLE_RES_R 2947 rows exported . . exporting table ISC_SECURE_CONF 2 rows exported . . exporting table ISC_SPECIALORG_UNIT 9 rows exported . . exporting table ISC_SPECIALORG_UNIT_BAK 0 rows exported . . exporting table ISC_SPORG_EXTPROP 0 rows exported . . exporting table ISC_SPORG_EXTPROPVAL 0 rows exported . . exporting table ISC_SPORG_EXTPROP_ATTR_R 0 rows exported . . exporting table ISC_SPROLE 81 rows exported . . exporting table ISC_SPROLE_EXT 0 rows exported . . exporting table ISC_SPROLE_EXT_VALUE 0 rows exported . . exporting table ISC_SPROLE_R 0 rows exported . . exporting table ISC_SP_DOMAIN 3 rows exported . . exporting table ISC_SP_DOMAIN_CODE_RELATION 15 rows exported . . exporting table ISC_SP_ORG_SYSTEM 3 rows exported . . exporting table ISC_STRATEGY_BASEORG_R 0 rows exported . . exporting table ISC_STRATEGY_CONF 0 rows exported . . exporting table ISC_STRATEGY_SESSION 0 rows exported . . exporting table ISC_STRATEGY_USER 0 rows exported . . exporting table ISC_SYNC_LOG 0 rows exported . . exporting table ISC_SYNC_PROCESS 0 rows exported . . exporting table ISC_SYSTEM_START_CONFIG 1 rows exported . . exporting table ISC_TEMP_ACTOR_ROLE_TBL 0 rows exported . . exporting table ISC_TEMP_USER 0 rows exported . . exporting table ISC_TEMP_USER_TBL 0 rows exported . . exporting table ISC_UNIT 27 rows exported . . exporting table ISC_USER 1947 rows exported . . exporting table ISC_USER_CFCA_CONN 0 rows exported . . exporting table ISC_USER_DUTY 0 rows exported . . exporting table ISC_USER_EXT 0 rows exported . . exporting table ISC_USER_EXT_PROPERTY 0 rows exported . . exporting table ISC_USER_EXT_PROP_ERP 0 rows exported . . exporting table ISC_USER_EXT_PROP_VALUE_ERP 0 rows exported . . exporting table ISC_USER_PASSWORDUSEFULDAY 54 rows exported . . exporting table ISC_USER_PASSWORD_REPETITIONS 20 rows exported . . exporting table ISC_USER_SPORG 1557 rows exported . . exporting table ISC_WO_ACCOUNTAPPLY 0 rows exported . . exporting table ISC_WO_ACCOUNT_CHANGE 0 rows exported . . exporting table ISC_WO_APPCONF_CHANGE 0 rows exported . . exporting table ISC_WO_APPROVAL_COMMENTS 0 rows exported . . exporting table ISC_WO_APP_REGISTER 0 rows exported . . exporting table ISC_WO_ORDER 0 rows exported . . exporting table ISC_WO_ROLELIST 0 rows exported . . exporting table ISC_WO_ROLES 0 rows exported . . exporting table OPERATE_OBJ 81 rows exported . . exporting table OPERATE_TYPE 419 rows exported . . exporting table RESOURCE_DEFAULT_PROPERTY 43 rows exported . . exporting table SAS_REPORT_FILES_LOG 0 rows exported . . exporting table SAS_STANDARD_DB_LOG_201301 0 rows exported . . exporting table SAS_STANDARD_LOG_TYPE 5 rows exported . . exporting table SAS_STATISTICAL_RULES 0 rows exported . . exporting table SAS_STATISTICS_DAY_LOGIN_COUNT 44 rows exported . . exporting table SAS_STATISTICS_DAY_LOGIN_USERS 53 rows exported . . exporting table SAS_STATISTICS_SP_VISIT_COUNT 1 rows exported . . exporting table USER_VERIFY 6 rows exported . exporting synonyms . exporting views . exporting stored procedures . exporting operators . exporting referential integrity constraints . exporting triggers . exporting indextypes . exporting bitmap, functional and extensible indexes . exporting posttables actions . exporting materialized views . exporting snapshot logs . exporting job queues . exporting refresh groups and children . exporting dimensions . exporting post-schema procedural objects and actions . exporting statistics Export terminated successfully without warnings. ``` 请问为什么会这样子?
wpf导入3ds max生成的obj文件,发现贴图位置不对
在使用expression blend 4 导入3ds max导出的obj文件时,发现展示出来的效果出现了贴图位置不对的情况,如下图:![图片说明](https://img-ask.csdn.net/upload/201909/11/1568171829_957027.png) 我使用的是win10 64位系统,我用系统自带的3d build和3dview查看obj文件,发现文件效果展示正常,如下图:![图片说明](https://img-ask.csdn.net/upload/201909/11/1568171930_352550.png) 现在不清楚是什么原因,猜测可能是因为blend中的坐标体系与其他的不一样,造成贴图位置无法正确对应,但网络上没有相关问题的解决方案,在这边请教各位大神。[源文件及obj文件](链接: https://pan.baidu.com/s/1zybIzR4DRWstqH8oYtjmiA 提取码: i61i "")
C#通过Socket实现多文件传输
大概需求是客户端发送一个xml文件名给服务器,服务器返回xml文件。这一步没问题。 后面客户端需要解析xml文件,根据解析出的文件名,去服务器获取指定文件。现在问题是第一次服务器发送xml文件之后就侦听不到客户端后面的请求了 服务端代码: ``` #region 窗体加载 private void Form1_Load(object sender, EventArgs e) { Socket socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//Socket设置、IPv4、Stream类型套接字、TCP协议 IPAddress ip = IPAddress.Any;//获取本机IP IPEndPoint point = new IPEndPoint(ip, 18002);//设置IP和端口 socketWatch.Bind(point);//绑定端口 memoEdit1.Text = "开始侦听..."; socketWatch.Listen(100);//最大连接数 Thread th = new Thread(SendFileFuncssss);//创建新线程 th.Start(socketWatch);//启动线程 th.IsBackground = true;//设置后台运行线程 } #endregion #region 根据客户端传输文件名发送指定文件 public void SendFileFuncssss(object obj) { Socket socket = obj as Socket; while (true) { Socket socketServices = socket.Accept(); byte[] buffer = new byte[1024]; int num = socketServices.Receive(buffer);//接收到字节数 string str = Encoding.UTF8.GetString(buffer, 1, num - 1);//接收到字符串 if (buffer[0] == 0)//表示接收到的是消息数据 { TxtAddContent(socketServices.RemoteEndPoint + "连接成功"); string FileName = str; if (FileName.Equals("AutoUpdater.xml"))//获取xml配置文件 { //发送XML文件到客户端 using (FileStream fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + FileName, FileMode.Open)) { byte[] arrFile = new byte[1024 * 1024 * 5]; int length = fs.Read(arrFile, 0, arrFile.Length); byte[] arrFileSend = new byte[length + 1]; arrFileSend[0] = 1; // 用来表示发送的是xml文件数据 Buffer.BlockCopy(arrFile, 0, arrFileSend, 1, length); socketServices.Send(arrFileSend);// 发送数据到客户端 } } if (!FileName.Equals("AutoUpdater.xml")) { //发送更新文件到客户端 using (FileStream fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + "\\FileFolder\\" + FileName, FileMode.Open)) { byte[] arrFile = new byte[1024 * 1024 * 50]; int length = fs.Read(arrFile, 0, arrFile.Length);//获取文件长度 byte[] arrFileSend = new byte[length + 1]; arrFileSend[0] = 1; // 用来表示发送的是xml文件数据 Buffer.BlockCopy(arrFile, 0, arrFileSend, 1, length); socketServices.Send(arrFileSend);// 发送数据到服务端 } } } } } #endregion ``` 客户端代码: ``` Socket socketClient = obj as Socket; socketClient.Connect(ipEndPoint); #region 修改本地文件名称 string Oldpath = AppDomain.CurrentDomain.BaseDirectory + "AutoUpdater.xml";//修改前名称 string Newpath = AppDomain.CurrentDomain.BaseDirectory + "AutoUpdater_Back.xml";//修改后名称 if (File.Exists(Oldpath)) { File.Delete(Newpath); File.Move(Oldpath, Newpath);//更改文件名 } #endregion if (socketClient.Connected) { try { TxtReceiveAddContent("连接成功"); //发送链接成功提示 byte[] arrMsg = Encoding.UTF8.GetBytes("AutoUpdater.xml"); byte[] arrSendMsg = new byte[arrMsg.Length + 1];//加一位标识用于表示是文字消息还是文件 arrSendMsg[0] = 0; // 用来表示发送的是消息数据 Buffer.BlockCopy(arrMsg, 0, arrSendMsg, 1, arrMsg.Length); socketClient.Send(arrSendMsg); //获取文件 string dirPath = Application.StartupPath; byte[] buffer = new byte[1024 * 1024 * 5]; int lenght = socketClient.Receive(buffer); if (buffer[0] == 1) { using (FileStream fs = new FileStream(dirPath + "\\AutoUpdater.xml", FileMode.Create)) { fs.Write(buffer, 1, lenght - 1); } TxtReceiveAddContent("配置文件接收成功:AutoUpdater.xml");//追加提示备注 } #region 获取XML里需要更新的文件和需要删除的文件 List<string> updatelist = new List<string>();//需要更新的文件集合 List<string> deletelist = new List<string>();//需要更新的文件集合 //获取历史xml文件更新时间以及更新版本 XDocument Olddocument = XDocument.Load(AppDomain.CurrentDomain.BaseDirectory + "AutoUpdater_Back.xml"); //获取到XML的根元素进行操作 XElement Oldroot = Olddocument.Root; XElement Oldele = Oldroot.Element("UpdateInfo"); //获取旧更新时间标签的值 XElement OldUpdateTime = Oldele.Element("UpdateTime"); //获取旧版本号标签的值 XElement OldVersion = Oldele.Element("Version"); //获取最新xml文件更新时间以及更新版本 XDocument Newdocument = XDocument.Load(AppDomain.CurrentDomain.BaseDirectory + "AutoUpdater.xml"); //获取到XML的根元素进行操作 XElement Newroot = Newdocument.Root; XElement Newele = Newroot.Element("UpdateInfo"); //获取旧更新时间标签的值 XElement NewUpdateTime = Newele.Element("UpdateTime"); //获取旧版本号标签的值 XElement NewVersion = Newele.Element("Version"); if (NewUpdateTime != OldUpdateTime || NewVersion != OldVersion) { //获取需要更新的文件列表 XElement NewUpList = Newroot.Element("UpdateList"); IEnumerable<XElement> UpList = NewUpList.Elements(); foreach (XElement item in UpList) { updatelist.Add(item.Value); } //获取需要删除的文件列表 XElement NewDelList = Newroot.Element("DeleteList"); IEnumerable<XElement> DelList = NewDelList.Elements(); foreach (XElement item in DelList) { deletelist.Add(item.Value); } } #endregion #region 循环获取更新文件 for (int i = 0; i < updatelist.Count; i++) { //发送链接成功提示 byte[] FileName = Encoding.UTF8.GetBytes(updatelist[i]); byte[] SendFileName = new byte[FileName.Length + 1];//加一位标识用于表示是文字消息还是文件 SendFileName[0] = 0; // 用来表示发送的是消息数据 Buffer.BlockCopy(FileName, 0, SendFileName, 1, FileName.Length); socketClient.Send(SendFileName); //获取文件 string FilePath = Application.StartupPath + "\\WebFile"; byte[] bufferByFile = new byte[1024 * 1024 * 50]; int lenghtByFile = socketClient.Receive(bufferByFile); if (bufferByFile[0] == 1) { using (FileStream fs = new FileStream(FilePath + "\\" + updatelist[i], FileMode.Create)) { fs.Write(bufferByFile, 1, lenghtByFile - 1); } TxtReceiveAddContent("文件接收成功:" + updatelist[i]); } } #endregion #region 循环删除指定文件 for (int i = 0; i < deletelist.Count; i++) { try { string path = AppDomain.CurrentDomain.BaseDirectory + "\\WebFile\\" + deletelist[i]; File.Delete(path); TxtReceiveAddContent("删除文件[" + deletelist[i] + "]成功"); } catch (Exception) { TxtReceiveAddContent("删除文件[" + deletelist[i] + "]失败"); continue; } } #endregion } catch (Exception ex) { File.Move(Newpath, Oldpath);//连接失败,还原文件名 MessageBox.Show(ex.ToString()); throw; } ``` 调试在客户端进循环的时候服务端侦听不到了 刚接触socket,多谢大佬们解答
c# vs2017 关于周立波的can分析仪 二次开发 大佬救我
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form1 : Form { uint m_devtype = 4;//设备类型号 uint m_devind = 0;//设备索引号 int m_canid = 0;//can口ID ///5.定义初始化CAN的数据类型 struct VCI_INIT_CONFIG { public int AccCode; public int AccMask; public int Reserved; public int Filter; public int Timing0; public int Timing1; public int Mode; } ///2.定义CAN信息帧的数据类型。 struct VCI_CAN_OBJ { public uint ID; public uint TimeStamp; public byte TimeFlag; public byte SendType; public byte RemoteFlag;//是否是远程帧 public byte ExternFlag;//是否是扩展帧 public byte DataLen; public byte []Data; ///Data[8] public byte []Reserved; //Reserved[0] 第0位表示特殊的空行或者高亮帧 Reserved[3] } ///4.定义错误信息的数据类型。 struct VCI_ERR_INFO { public uint ErrCode; public byte []Passive_ErrData;/// Passive_ErrData[3] public byte ArLost_ErrData; } public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { VCI_INIT_CONFIG InitConfig = new VCI_INIT_CONFIG(); /* InitConfig.AccCode = 00; InitConfig.AccMask = -1; InitConfig.Filter = 1; InitConfig.Reserved = 0; InitConfig.Mode = 0; InitConfig.Timing0 = 0;//测试.... InitConfig.Timing1 = 20; */ uint a = VCI_CloseDevice(m_devtype, m_devind);//调用DLL uint b = VCI_OpenDevice(m_devtype, m_devind, 0); if (b != 1)//reserverd { MessageBox.Show("打开设备错误" ); return; } if (VCI_InitCAN(3, 0, 0, ref InitConfig) == 1)//canid { if (VCI_StartCAN(3, 0, 0) == 1)//canid { /* VCI_CAN_OBJ vio = new VCI_CAN_OBJ(); vio.DataLen = 8; vio.ExternFlag = 0; vio.RemoteFlag = 0; vio.SendType = 2; vio.ID = 1; vio.data0 = (byte)11; vio.data1 = (byte)11; vio.data2 = (byte)11; vio.data3 = (byte)11; vio.data4 = (byte)11; vio.data5 = (byte)11; vio.data6 = (byte)11; vio.data7 = (byte)11; vio.Reserved0 = 0; vio.Reserved1 = 0; vio.Reserved2 = 0; int smap = VCI_Transmit(3, 0, 0, ref vio, 1); MessageBox.Show(smap.ToString()); */ } } else { MessageBox.Show("初始化错误"); return; } } [DllImport("ControlCAN.dll")] static extern uint VCI_OpenDevice(uint DevType, uint DevIndex, uint Reserved);//Reserved系统保留字段 [DllImport("ControlCAN.dll")] static extern uint VCI_CloseDevice(uint DevType, uint DevIndex); [DllImport("ControlCAN.dll")] static extern int VCI_InitCAN(int Devicetype, int DeviceInd, int CANInd, ref VCI_INIT_CONFIG InitConfig);//初始化指定CAN [DllImport("ControlCAN.dll")] static extern int VCI_StartCAN(int Devicetype, int DeviceInd, int CANInd);//启动CAN [DllImport("ControlCAN.dll")] static extern int VCI_ResetCAN(int Devicetype, int DeviceInd, int CANInd);//复位CAN [DllImport("ControlCAN.dll")] static extern int VCI_Transmit(int Devicetype, int DeviceInd, int CANInd, ref VCI_CAN_OBJ vio, int length);//发送数据 [DllImport("ControlCAN.dll")] static extern int VCI_ReadErrInfo(int Devicetype, int DeviceInd, int CANInd, ref VCI_ERR_INFO errinfo);//接收最后1条错误信息 [DllImport("ControlCAN.dll")] static extern int VCI_Receive(int Devicetype, int DeviceInd, int CANInd, ref VCI_CAN_OBJ vri, int length, int WaitTime);//接收信息 } } 设备打开那边就出错了,有大佬知道为啥吗 ![图片说明](https://img-ask.csdn.net/upload/202001/08/1578469705_478201.png)
在C++程序里面使用TriMesh加载obj文件并显示此obj文件
在C++程序里面使用TriMesh加载obj文件并显示此obj文件
重写hashCode与equals方法,判断两类是否相等仍然无效
大佬们,为什么我重写了hashCode和equals方法,判断两个类相等为什么还是false ``` @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + id.hashCode(); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Product other = (Product) obj; if (id != other.id) return false; return true; } ```
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
日均350000亿接入量,腾讯TubeMQ性能超过Kafka
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100) 【导读】近日,腾讯开源动作不断,相继开源了分布式消息中间件TubeMQ,基于最主流的 OpenJDK8开发的
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
相关热词 c# 输入ip c# 乱码 报表 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件
立即提问