C#初级编程

article/2025/10/9 0:59:56

Unity学习笔记——C#初级编程

  • 一、Awake 和 Start
  • 二、Update 和 FixedUpdate
  • 三、启用和禁用组件
  • 四、SetActive、Active Self、Active in Hierarchy
  • 五、位置和旋转
  • 六、transform.lookAt(Transform target)
  • 七、线性插值
  • 八、Destroy
  • 九、GetButton 和 GetKey
  • 十、GetAxis
  • 十一、GetComponent
  • 十二、数据类型
  • 十三、Instantiate
  • 十四、数组
  • 十五、Invoke
  • 十六、枚举

一、Awake 和 Start

Awake 和 Start 是在加载脚本时自动调用的两个函数,在一个对象绑定脚本的生命周期内只能调用一次。

Awake:还未启用脚本组件便已调用,适合用于在脚本与初始化之间设置任何引用
Start:在Awake之后调用,直接在首次更新之前调用,前提是已经启用了脚本组件,这样可以将初始化代码的任何部分,延迟到真正需要的时候再调用。

例如,有一个敌人进入游戏,并使用Awake获得了分配的弹药,但要想射击,需在启用脚本组件时,使用Start在定义时间实现射击。

using UnityEngine;
using System.Collections;public class AwakeAndStart : MonoBehaviour
{void Awake (){Debug.Log("Awake called.");}void Start (){Debug.Log("Start called.");}
}

二、Update 和 FixedUpdate

Update:在每个使用它的脚本中每帧调用一次,基本上只要需要变化或调整都需要使用Update来实现。Update并不是按固定时间调用,如果某一帧比下一帧处理时间长,那么调用的时间间隔就会不同。
FixedUpdate:与Update类似,但FixedUpdate按固定时间调用,调用后会立即进行任何必要的物理计算,因此任何影响刚体(物理对象)的动作都应使用FixedUpdate执行。

using UnityEngine;
using System.Collections;public class UpdateAndFixedUpdate : MonoBehaviour
{void FixedUpdate (){Debug.Log("FixedUpdate time :" + Time.deltaTime);}void Update (){Debug.Log("Update time :" + Time.deltaTime);}
}

输出
Unity中的Update和其他许多特殊函数,都可以在Visual Studio中迅速轻松创建,使用MonoBehaviour脚本编写向导即可实现。按Ctrl+Shift+M启动向导,勾选想要添加的方法即可在光标处添加函数。

三、启用和禁用组件

只需使用enabled标记,设为false即可禁用组件。
注意,脚本也是组件,也可以通过enabled禁用。

using UnityEngine;
using System.Collections;public class EnableComponents : MonoBehaviour
{private Light myLight;void Start (){myLight = GetComponent<Light>();}void Update (){if(Input.GetKeyUp(KeyCode.Space))//按下空格{myLight.enabled = !myLight.enabled;}}
}

四、SetActive、Active Self、Active in Hierarchy

SetActive:通过脚本在场景中激活或停用对象。需要注意的是,停用父对象,那么场景中活跃的子对象也会停止,但子对象仍在其层次结构中保持活跃状态。下图例子中,停用父对象PhysicsDoor,子对象Door变灰,但在层次结构中仍旧保持活跃状态。
停用父对象
子对象仍旧活跃

SetActive示例——停用对象
------------------------------------------------------
using UnityEngine;
using System.Collections;public class ActiveObjects : MonoBehaviour
{void Start (){gameObject.SetActive(false);}
}
------------------------------------------------------

Active Self:检测对象在场景中是否处于活跃状态。
Active in Hierarchy:检测对象在层次结构中是否处于活跃状态。

Active Self、Active in Hierarchy示例——输出对象状态
-----------------------------------------------------------------------
using UnityEngine;
using System.Collections;public class CheckState : MonoBehaviour
{public GameObject myObject;void Start (){Debug.Log("Active Self: " + myObject.activeSelf);Debug.Log("Active in Hierarchy" + myObject.activeInHierarchy);}
}
-----------------------------------------------------------------------

五、位置和旋转

1. 位置变换:transform.Translate()

-----------------------------------------------------------------------
参数:Vector3
Time.deltaTime:两次Update函数调用的间隔时长
功能:每帧移动一定距离,乘上Time.deltaTime后为匀速运动
transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
-----------------------------------------------------------------------

2. 旋转:transform.Rotate()

-----------------------------------------------------------------------
参数1:Vector3,表示围绕哪个轴旋转
参数2float,表示旋转量
transform.Rotate(Vector3.up, turnSpeed * Time.deltaTime);
-----------------------------------------------------------------------

3. 应用
在小飞机上挂载脚本,实现方向键控制小飞机的运动速度和方向。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyJet : MonoBehaviour
{public float moveSpeed = 0f;public float turnSpeed = 0f;// Start is called before the first frame updatevoid Start(){    }// Update is called once per framevoid Update(){if (Input.GetKey(KeyCode.UpArrow)){moveSpeed += 0.01f;}else if (Input.GetKey(KeyCode.DownArrow)){moveSpeed -= 0.01f;}if (Input.GetKey(KeyCode.LeftArrow)){turnSpeed += 0.1f;}else if (Input.GetKey(KeyCode.RightArrow)){turnSpeed -= 0.1f;}if (Input.GetKey(KeyCode.Space)){moveSpeed = 0;turnSpeed = 0;}if (moveSpeed > 0){transform.Rotate(Vector3.forward, turnSpeed * Time.deltaTime);}else if(moveSpeed < 0){transform.Rotate(Vector3.forward, -turnSpeed * Time.deltaTime);}transform.Translate(Vector3.up * Time.deltaTime * moveSpeed);}
}

六、transform.lookAt(Transform target)

LookAt 函数使一个游戏对象的变换组件面向另一个游戏对象的变换组件,也就是使自身的Z轴指向另一个游戏对象,可用于摄像机对运动物体的跟踪拍摄。

using UnityEngine;
using System.Collections;public class CameraLookAt : MonoBehaviour
{public Transform target;void Update (){transform.LookAt(target);}
}

七、线性插值

在制作游戏时,有时可以在两个值之间进行线性插值。这是通过 Lerp 函数来完成的。线性插值会在两个给定值之间找到某个百分比的值。例如,我们可以在数字 3 和 5 之间按 50% 进行线性插值以得到数字 4。这是因为 4 是 3 和 5 之间距离的 50%。
在 Unity 中,有多个 Lerp 函数可用于不同类型。对于我们刚才使用的示例,与之等效的将是 Mathf.Lerp 函数,如下所示:

// 在此示例中,result = 4
float result = Mathf.Lerp (3f, 5f, 0.5f);

Mathf.Lerp 函数接受 3 个 float 参数:一个 float 参数表示要进行插值的起始值,另一个 float 参数表示要进行插值的结束值,最后一个 float 参数表示要进行插值的距离。在此示例中,插值为 0.5,表示 50%。如果为 0,则函数将返回“from”值;如果为 1,则函数将返回“to”值。
Lerp 函数的其他示例包括 Color.Lerp 和 Vector3.Lerp。这些函数的工作方式与 Mathf.Lerp 完全相同,但是“from”和“to”值分别为 Color 和 Vector3 类型。在每个示例中,第三个参数仍然是一个 float 参数,表示要插值的大小。这些函数的结果是找到一种颜色(两种给定颜色的某种混合)以及一个矢量(占两个给定矢量之间的百分比)。
让我们看看另一个示例:

Vector3 from = new Vector3 (1f, 2f, 3f);
Vector3 to = new Vector3 (5f, 6f, 7f);// 此处 result = (4, 5, 6)
Vector3 result = Vector3.Lerp (from, to, 0.75f);

在此示例中,结果为 (4, 5, 6),因为 4 位于 1 到 5 之间的 75% 处,5 位于 2 到 6 之间的 75% 处,而 6 位于 3 到 7 之间的 75% 处。
使用 Color.Lerp 时适用同样的原理。在 Color 结构中,颜色由代表红色、蓝色、绿色和 Alpha 的 4 个 float 参数表示。使用 Lerp 时,与 Mathf.Lerp 和 Vector3.Lerp 一样,这些 float 数值将进行插值。
在某些情况下,可使用 Lerp 函数使值随时间平滑。请考虑以下代码段:

void Update ()
{light.intensity = Mathf.Lerp(light.intensity, 8f, 0.5f);
}

如果光的强度从 0 开始,则在第一次更新后,其值将设置为 4。下一帧会将其设置为 6,然后设置为 7,再然后设置为 7.5,依此类推。因此,经过几帧后,光强度将趋向于 8,但随着接近目标,其变化速率将减慢。请注意,这是在若干个帧的过程中发生的。如果我们不希望与帧率有关,则可以使用以下代码:

void Update ()
{light.intensity = Mathf.Lerp(light.intensity, 8f, 0.5f * Time.deltaTime);
}

这意味着强度变化将按每秒而不是每帧发生。
请注意,在对值进行平滑时,通常情况下最好使用 SmoothDamp 函数。仅当您确定想要的效果时,才应使用 Lerp 进行平滑。

八、Destroy

在运行时使用 Destroy() 函数删除游戏对象和组件。

//按下空格后,脚本挂载的游戏对象被删除。
using UnityEngine;
using System.Collections;public class DestroyBasic : MonoBehaviour
{void Update (){if(Input.GetKey(KeyCode.Space)){Destroy(gameObject);}}
}
//按下空格后,指定的游戏对象被删除。
using UnityEngine;
using System.Collections;public class DestroyOther : MonoBehaviour
{public GameObject other;void Update (){if(Input.GetKey(KeyCode.Space)){Destroy(other);}}
}
//删除组件
using UnityEngine;
using System.Collections;public class DestroyComponent : MonoBehaviour
{void Update (){if(Input.GetKey(KeyCode.Space)){Destroy(GetComponent<MeshRenderer>());}}
}

九、GetButton 和 GetKey

GetButton 和 GetKey 用于在 Unity 项目中获取输入的按钮或键。
GetKey:使用KeyCode明确指定按键名称。
GetButton:指定自定义的控制。
输入管理器可以指定输入名称并给它指定一个键或按钮。方法为:顶部菜单 Edit -> Project Settings -> Input Manager,通过设置 Name 和 Positive Button 引用该按键。
输入共有三种状态并返回相应布尔值。

1. 还未按下按键
在这里插入图片描述
2. 按下按键后的第一帧
在这里插入图片描述
3. 保持按住按键
在这里插入图片描述
4. 松开按键后的第一帧
在这里插入图片描述
5. 停止动作
在这里插入图片描述
总之,Up 和 Down 仅在按下和松开的第一帧变为 true,其余时候为 false,而 GetButton 可以用来判断是否按住了按键,GetKey也是如此。

十、GetAxis

GetAxis 是基于轴输入,与 GetButton、GetKey 类似,同样可以通过 Input Manager 设置,但返回的是介于-1到1之间的浮点数,相当于是介于正负1之间的滑尺。
Positive Button:按下后返回值介于0到1之间。
Negative Button:按下后返回值介于-1到0之间。
Gravity:设置输入重新居中的速度。仅当 Type 设置为 key / mouse button 时,此属性才适用。Gravity 越高,归零的速度越快,反之越慢。
Sensitivity:影响按钮按下后到达1或-1的速度,对于键盘输入,值越大,响应越快。较小的值将更加平滑。对于鼠标增量,该值会缩放实际鼠标增量。
Dead:任何小于此数字的正值或负值都视为零。适用于游戏杆。
Snap:启用此选项可在接收相反输入后立即将轴值重置为零。仅当 Type 设置为 key / mouse button 时,此属性才适用。

void Update () {float h = Input.GetAxis("Horizontal");float xPos = h * range;transform.position = new Vector3(xPos, 2f, 0);}
//Input.GetAxis("Raw"):仅放回整数,不返回非整数,适合需要精准控制的二维游戏。

十一、GetComponent

功能:访问其他脚本或组件。
用法:GetComponent<>( ),尖括号的作用是让类型作为参数

UsingOtherComponents

using UnityEngine;
using System.Collections;public class UsingOtherComponents : MonoBehaviour
{   public GameObject otherGameObject;  //anotherScript和yetAnotherScript存放对其他脚本的引用,也就是以脚本名称为类型的变量private AnotherScript anotherScript;private YetAnotherScript yetAnotherScript;private BoxCollider boxCol;void Awake (){//AnotherScript和UsingOtherComponents挂载在同一个游戏对象上,所以可以直接使用GetComponentanotherScript = GetComponent<AnotherScript>();//yetAnotherScript挂载在另一游戏对象上,所以要用otherGameObject调用yetAnotherScript = otherGameObject.GetComponent<YetAnotherScript>();//也可用于访问API未公开的其他组件boxCol = otherGameObject.GetComponent<BoxCollider>();}void Start (){boxCol.size = new Vector3(3,3,3);Debug.Log("The player's score is " + anotherScript.playerScore);Debug.Log("The player has died " + yetAnotherScript.numberOfPlayerDeaths + " times");}
}

AnotherScript

using UnityEngine;
using System.Collections;public class AnotherScript : MonoBehaviour
{public int playerScore = 9001;
}

YetAnotherScript

using UnityEngine;
using System.Collections;public class YetAnotherScript : MonoBehaviour
{public int numberOfPlayerDeaths = 3;
}

十二、数据类型

Value(值类型)Reference(引用类型)
intClasses
floatTransform
doubleGameobject
bool
char
Structs(Vector3,Quaternion)
  • 值类型变量:包含某个值(改变后不改变原来的值)
  • 引用类型变量:包含值存储位置的存储地址(改变后该位置存储的值改变)

DatatypeScript

using UnityEngine;
using System.Collections;public class DatatypeScript : MonoBehaviour 
{void Start () {//值类型变量————游戏对象未发生移动Vector3 pos = transform.position;pos = new Vector3(0, 2, 0);//引用类型变量————游戏对象移动Transform tran = transform;tran.position = new Vector3(0, 2, 0);}
}

十三、Instantiate

在运行期间使用 Instantiate 创建预制件的克隆体

Instantiate(projectile,barrelEnd.position,barrelEnd.rotation)
-------------------------------------------------------------
projectile:要实例化的对象
barrelEnd.position:新克隆的对象的位置
barrelEnd.rotation:新克隆的对象的旋转
Instantiate(projectile):克隆体默认出现在挂载脚本的对象的位置
-------------------------------------------------------------

UsingInstantiate

using UnityEngine;
using System.Collections;public class UsingInstantiate : MonoBehaviour
{public Rigidbody rocketPrefab;//barrelEnd是公有变量,可以创建空对象后拖入Unity属性框中,用作定位public Transform barrelEnd;void Update (){if(Input.GetButtonDown("Fire1")){Rigidbody rocketInstance;//Instantiate一般返回object类型,这里需要添加作用力//因此用 as Rigidbody强制类型转换rocketInstance = Instantiate(rocketPrefab, barrelEnd.position, barrelEnd.rotation) as Rigidbody;rocketInstance.AddForce(barrelEnd.forward * 5000);}}
}

RocketDestruction

using UnityEngine;
using System.Collections;public class RocketDestruction : MonoBehaviour
{void Start(){Destroy (gameObject, 1.5f);//经过指定秒数后移除对象}
}

十四、数组

使用数组将变量集合在一起以便于管理

Arrays

using UnityEngine;
using System.Collections;public class Arrays : MonoBehaviour
{public GameObject[] players;void Start (){//FindGameObjectsWithTag:返回场景中带有指定标记的游戏对象组成的数组players = GameObject.FindGameObjectsWithTag("Player");for(int i = 0; i < players.Length; i++){Debug.Log("Player Number "+i+" is named "+players[i].name);}}
}

十五、Invoke

Invoke 函数可用于安排在以后的时间进行方法调用。

Invoke(name,time)
-------------------------------------------------------
name:字符串类型,想调用的方法名称
time:以秒为单位的延时时长
只有不包含参数,且返回类型为void的函数能调用Invoke
-------------------------------------------------------

InvokeScript

using UnityEngine;
using System.Collections;public class InvokeScript : MonoBehaviour 
{public GameObject target;void Start(){Invoke ("SpawnObject", 2);}void SpawnObject(){Instantiate(target, new Vector3(0, 2, 0), Quaternion.identity);}
}
InvokeRepeating(name,timeBeforeMethod,timeAfterMethod)
-------------------------------------------------------
name:字符串类型,想调用的方法名称
timeBeforeMethod:调用方法之前的延时,以秒为单位
timeAfterMethod:后续方法调用间隔的延时,以秒为单位
-------------------------------------------------------CancelInvoke(name)
-------------------------------------------------------
无参:停止这个脚本中由Invoke调用的所有实例
name:想暂停的方法名称,停止某个指定的Invoke
-------------------------------------------------------

InvokeRepeating

using UnityEngine;
using System.Collections;public class InvokeRepeating : MonoBehaviour 
{public GameObject target;void Start(){InvokeRepeating("SpawnObject", 2, 1);}void SpawnObject(){//x轴和z轴位置随机float x = Random.Range(-2.0f, 2.0f);float z = Random.Range(-2.0f, 2.0f);Instantiate(target, new Vector3(x, 2, z), Quaternion.identity);}
}

十六、枚举

枚举可用于创建相关常量的集合。

格式:enum Name {A, B, C, D};
每个常量都有默认值,为从0开始往上数的整数,上例A=0,B=1,C=2,D=3
enum Name {A=1, B, C, D};默认值从1开始往上数
也可以声明每个常量的值
枚举中常量的类型可以更改为任意整数类型 ->enum Name : short {A, B, C, D};

EnumScript

using UnityEngine;
using System.Collections;public class EnumScript : MonoBehaviour 
{enum Direction {North, East, South, West};void Start () {Direction myDirection;myDirection = Direction.North;}Direction ReverseDirection (Direction dir){if(dir == Direction.North)dir = Direction.South;else if(dir == Direction.South)dir = Direction.North;else if(dir == Direction.East)dir = Direction.West;else if(dir == Direction.West)dir = Direction.East;return dir;     }
}

http://chatgpt.dhexx.cn/article/ML1p9OwJ.shtml

相关文章

零基础怎样自学编程?新手如何学习编程?编程学习入门指南

对于编程&#xff0c;很多新手的第一感觉可能就是&#xff1a; 高深&#xff0c;难学。 学好编程&#xff0c;有的时候&#xff0c;可以把一些需要我们重复劳动的工作&#xff0c;自动化批量处理&#xff0c;为我们节省很多时间和精力。 对于一些学得比较深入的朋友来说&…

新手学计算机编程怎么入门 从哪学起

近些年有一种职业发展很快、人才需求量大、工资高&#xff0c;那就是程序员。他们的基本工作就是电脑编程&#xff0c;开发者各种各样的软件、APP&#xff0c;被很多人膜拜。如果你想成为一名程序员&#xff0c;有必要了解一下这些基本的电脑编程入门教程。 1计算机编程怎么入门…

代码编程教学入门

前言 代码编程是我们在现代能获得的最宝贵的技能之一&#xff0c;学会写代码不仅让我们在职业前景上更得心应手&#xff0c;而且还能让我们的大脑保持活跃和创造性&#xff0c;甚至我们还有机会创造出一些 awesome 的东西出来。 如果我们才刚刚开始&#xff08;或准备开始&am…

20道经典C语言编程题(初级)

编者按&#xff1a;以下20道题目为自己练习所写的代码&#xff0c;均已提交检测通过&#xff0c;其中有些题也许有更优的解法&#xff0c;所以写的不好望读者包涵&#xff0c;由于个人练习&#xff0c;所以没有写注释&#xff0c;有什么问题的地方&#xff0c;可以留言一起交流…

沈师 PTA 数据库题目及部分解析 第四章

判断题 1.在数据库安全性控制中&#xff0c;所有授予出去的权力在必要时都可以用REVOKE语句收回。 T 2.用户可以“自主”地决定将数据的存取权限授予何人、决定是否也将“授权”的权限授予别人&#xff0c;因此称这样的存取控制是自主存取控制。 T 3.数据库的安全性是指保护数据…

编程题目+数据库题目总结(3)

目录 编程题1.字典中保存了一些股票代码&#xff08;键&#xff09;及价格&#xff08;值&#xff09;&#xff0c;用一行代码找出价格最高的股票&#xff0c;输出股票代码。(5分&#xff09;2.字典中保存了一些股票代码&#xff08;键&#xff09;及价格&#xff08;值&#x…

沈师 PTA 数据库题目及部分解析 第一章

判断题&#xff1a; 1.一个数据库只有一个模式和一个内模式。 T 2.数据模型是由数据结构、数据操作和完整性约束三部分组成的 T 3.由于数据库中的数据是不断更新的&#xff0c;因此关系模式是相对变化的。 F 解析&#xff1a;关系模式不会相对变化&#xff0c;变化的是实例 4.数…

【数据库题目复习】期末试卷 一、二

文章目录 试题一一、选择题二、填空题三、简答题四、设计题五、综合题 试题二一、选择题二、填空题三、简答题四、设计题五、综合题 试题一 一、选择题 1. 数据库系统的核心是&#xff08; B &#xff09; A&#xff0e;数据库 B&#xff0e;数据库管理系统 C&#xf…

【数据库题目复习】第7章 数据库设计

文章目录 一、选择题&#xff1a;二、填空三、应用 参考文章&#xff1a;https://blog.csdn.net/qq_46139801/article/details/117453449 知识点&#xff1a; &#xff08;1&#xff09;各子系统的E-R图之间的冲突主要有三类&#xff1a; 属性冲突、命名冲突和结构冲突。 &…

【力扣刷题总结】数据库题目按知识点分类总结

观前提示&#xff1a; 这个图先自行背诵至滚瓜烂熟。 文档中论述题目解题思路时没有特殊情况都按照上面的程序执行顺序为准&#xff0c;个别题也会以其他更自然的顺序讲解。 本文的知识点整理仅起提示作用&#xff0c;一些不常用功能、参数可能会遗漏&#xff0c;如需了解详细…

数据库题目之数据库设计

一、选择题 1、在数据库设计中&#xff0c;用E-R图来描述信息结构但不涉及信息在计算机中的表示&#xff0c;它是数据库设计的 阶段。 A&#xff0e;需求分析 B&#xff0e;概念设计 C&#xff0e;逻辑设计 D&#xff0e;物理设计 【答案&#xff1a;】B 2、在关系…

数据库常考大题

宝子们心心念念的数据库大题来啦~ 我已经整理好啦~你们根据目录找对应题目就好啦&#xff0c;嘿嘿~姐姐是不是还有点小贴心呢&#xff1f; &#x1f6f8; &#x1f30f; &#x1f318; • . ✯✯ ★ * &#x1f6f0; . • ★ • ▁▂▃▄▅▆▇▇▆▅▄▃▁▂▃. 目录…

33道数据库题目

33道数据库题目 准备三张表题目 准备三张表 emp–员工表 dept–部门表 salgrade–工资等级表 题目 取得每个部门最高薪水的人员名称 (方法1) select ename, sal, deptno from emp where sal in (select max(sal) from emp group by deptno);(方法2&#xff09; select e.…

50道数据库SQL练习题(深入理解各关键字的作用)

目录 表结构创建表练习题1、查询“001”课程比“002”课程成绩高的所有学生的学号2、查询所有同学的学号、姓名、选课数、总成绩3、查询平均成绩大于60分的同学的 学号和平均成绩4、查询姓“葛”的老师的个数5、查询没学过“五木”老师课的同学的学号、姓名6、查询学过“101”并…

数据库复习题选择题+判断题+填空题(考试续命必备

数据库复习题选择题判断题填空题(考试续命必备 一些选择题 1、从计算机数据管理的角度看&#xff0c;信息就是数据&#xff0c;数据就是信息。&#xff08;B &#xff09; A、对 B、错 (描述事物的符号记录称为数据 数据库的数据项之间无联系&#xff0c;记录之间存在联系。…

【课后习题】高等数学第七版上第二章 导数与微分 第五节 函数的微分

习题2-5 1. 已知 y x 3 − x yx^3-x yx3−x, 计算在 x 2 x2 x2 处当 Δ x \Delta x Δx 分别等于 1 , 0.1 , 0.01 1,0.1,0.01 1,0.1,0.01 时的 Δ y \Delta y Δy 及 d y \mathrm{d} y dy. 2. 设函数 y f ( x ) yf(x) yf(x) 的图形如下, 试在图(a)、(b)、&#xff0…

高等数学同济七版课后习题答案

高等数学同济七版课后习题答案上册下册,习题全解指南。 一、《高等数学》(第七版)下册习题全解 第八章 向量代数与空间解析几何 下载地址: 链接:https://pan.baidu.com/s/185C8RB4Y9pYO84V4Rup1Wg 提取码:p0o8 习题8-1 向量及其线性运算 习题8-2 数量积 向量积 *混合积…

高等数学(第七版)同济大学 习题10-3 (后6题)个人解答

高等数学&#xff08;第七版&#xff09;同济大学 习题10-3&#xff08;后6题&#xff09; 函数作图软件&#xff1a;Mathematica 10. 利 用 球 面 坐 标 计 算 下 列 三 重 积 分 &#xff1a; \begin{aligned}&10. \ 利用球面坐标计算下列三重积分&#xff1a;&\end…

高等数学(第七版)同济大学 习题1-8 个人解答

高等数学&#xff08;第七版&#xff09;同济大学 习题1-8 函数作图软件&#xff1a;Mathematica 1. 设 y f ( x ) 的图形如图 1 − 39 所示&#xff0c;试指出 f ( x ) 的全部间断点&#xff0c;并对可去间断点补充或 修改函数值的定义&#xff0c;使它成为连续点。 \begin{…